home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr47 / 335_01.zip / AS6301.Y < prev    next >
Text File  |  1993-04-01  |  55KB  |  2,277 lines

  1. %{
  2.  
  3. /*
  4. HEADER:     ;
  5. TITLE:         Frankenstein Cross Assemblers;
  6. VERSION:     2.0;
  7. DESCRIPTION: "    Reconfigurable Cross-assembler producing Intel (TM)
  8.         Hex format object records.  ";
  9. KEYWORDS:     cross-assemblers, 1805, 2650, 6301, 6502, 6805, 6809, 
  10.         6811, tms7000, 8048, 8051, 8096, z8, z80;
  11. SYSTEM:     UNIX, MS-Dos ;
  12. FILENAME:     as6301.y;
  13. WARNINGS:     "This software is in the public domain.  
  14.         Any prior copyright claims are relinquished.  
  15.  
  16.         This software is distributed with no warranty whatever.  
  17.         The author takes no responsibility for the consequences 
  18.         of its use.
  19.  
  20.         Yacc (or Bison) required to compile."  ;
  21. SEE-ALSO:     as6301.doc,frasmain.c;    
  22. AUTHORS:     Mark Zenier;
  23. COMPILERS:     Microport Sys V/AT, ATT Yacc, Turbo C V1.5, Bison (CUG disk 285)
  24.         (previous versions Xenix, Unisoft 68000 Version 7, Sun 3);
  25. */
  26. /* 6301 instruction generation file */
  27. /* November 17, 1990 */
  28.  
  29. /*
  30.     description    frame work parser description for framework cross
  31.             assemblers
  32.     history        February 2, 1988
  33.             September 11, 1990 - merge table definition
  34.             September 12, 1990 - short file names
  35.             September 14, 1990 - short variable names
  36.             September 17, 1990 - use yylex as external
  37. */
  38. #include <stdio.h>
  39. #include "frasmdat.h"
  40. #include "fragcon.h"
  41.  
  42. #define yylex lexintercept
  43.  
  44. /*
  45.     file        fraselcrit.h
  46.     author        Mark Zenier
  47.     description    Selection criteria and token values for 6301
  48.             framework assembler
  49.     usage        framework cross assembler
  50.     history        September 19, 1987
  51. */
  52.  
  53.         /* 0000.0000.xxxx.xxxx */
  54. #define BITNUMB        0xff
  55. #define BIT0        0x01
  56. #define BIT1        0x02
  57. #define BIT2        0x04
  58. #define BIT3        0x08
  59. #define BIT4        0x10
  60. #define BIT5        0x20
  61. #define BIT6        0x40
  62. #define BIT7        0x80
  63.  
  64.         /* 0000.00xx.0000.0000 */
  65. #define ACCREG        0x300
  66. #define REGA        0x100
  67. #define REGB        0x200
  68.  
  69.         /* 0000.xx00.0000.0000 */
  70. #define ADDR        0xc00
  71. #define DIRECT        0x400
  72. #define EXTENDED    0x800
  73.  
  74. #define ST_INH 0x1
  75. #define ST_ACC 0x2
  76. #define ST_INDREG 0x4
  77. #define ST_EXP 0x8
  78. #define ST_IMM 0x10
  79. #define ST_IND 0x20
  80. #define ST_AEXP 0x40
  81. #define ST_AIMM 0x80
  82. #define ST_AIND 0x100
  83. #define ST_BSET 0x200
  84. #define ST_BSETIND 0x400
  85. #define ST_MEMIMM 0x800
  86. #define ST_MEMIMMIND 0x1000
  87.     
  88.     static char    genbdef[] = "[1=];";
  89.     static char    genwdef[] = "[1=]x";
  90.     char ignosyn[] = "[Xinvalid syntax for instruction";
  91.     char ignosel[] = "[Xinvalid operands";
  92.  
  93.     long    labelloc;
  94.     static int satsub;
  95.     int    ifstkpt = 0;
  96.     int    fraifskip = FALSE;
  97.  
  98.     struct symel * endsymbol = SYMNULL;
  99.  
  100. %}
  101. %union {
  102.     int    intv;
  103.     long     longv;
  104.     char    *strng;
  105.     struct symel *symb;
  106.     struct {int indexv, ex; } inetre;
  107. }
  108.  
  109. %token <intv> ACCUM
  110. %token <intv> INDEX
  111. %type <inetre> indexed
  112. %token <intv> KOC_BDEF
  113. %token <intv> KOC_ELSE
  114. %token <intv> KOC_END
  115. %token <intv> KOC_ENDI
  116. %token <intv> KOC_EQU
  117. %token <intv> KOC_IF
  118. %token <intv> KOC_INCLUDE
  119. %token <intv> KOC_ORG
  120. %token <intv> KOC_RESM
  121. %token <intv> KOC_SDEF
  122. %token <intv> KOC_SET
  123. %token <intv> KOC_WDEF
  124. %token <intv> KOC_CHSET
  125. %token <intv> KOC_CHDEF
  126. %token <intv> KOC_CHUSE
  127. %token <intv> KOC_opcode
  128.  
  129. %token <longv> CONSTANT
  130. %token EOL
  131. %token KEOP_AND
  132. %token KEOP_DEFINED
  133. %token KEOP_EQ
  134. %token KEOP_GE
  135. %token KEOP_GT
  136. %token KEOP_HIGH
  137. %token KEOP_LE
  138. %token KEOP_LOW
  139. %token KEOP_LT
  140. %token KEOP_MOD
  141. %token KEOP_MUN
  142. %token KEOP_NE
  143. %token KEOP_NOT
  144. %token KEOP_OR
  145. %token KEOP_SHL
  146. %token KEOP_SHR
  147. %token KEOP_XOR
  148. %token KEOP_locctr
  149. %token <symb> LABEL
  150. %token <strng> STRING
  151. %token <symb> SYMBOL
  152.  
  153. %token KTK_invalid
  154.  
  155. %right    KEOP_HIGH KEOP_LOW
  156. %left    KEOP_OR KEOP_XOR
  157. %left    KEOP_AND
  158. %right    KEOP_NOT
  159. %nonassoc    KEOP_GT KEOP_GE KEOP_LE KEOP_LT KEOP_NE KEOP_EQ
  160. %left    '+' '-'
  161. %left    '*' '/' KEOP_MOD KEOP_SHL KEOP_SHR
  162. %right    KEOP_MUN
  163.  
  164.  
  165. %type <intv> expr exprlist stringlist
  166.  
  167. %start file
  168.  
  169. %%
  170.  
  171. file    :    file allline
  172.     |    allline
  173.     ;
  174.  
  175. allline    :     line EOL
  176.             {
  177.                 clrexpr();
  178.             }
  179.     |    EOL
  180.     |    error EOL
  181.             {
  182.                 clrexpr();
  183.                 yyerrok;
  184.             }
  185.     ;
  186.  
  187. line    :    LABEL KOC_END 
  188.             {
  189.                 endsymbol = $1;
  190.                 nextreadact = Nra_end;
  191.             }
  192.     |          KOC_END 
  193.             {
  194.                 nextreadact = Nra_end;
  195.             }
  196.     |    KOC_INCLUDE STRING
  197.             {
  198.         if(nextfstk >= FILESTKDPTH)
  199.         {
  200.             fraerror("include file nesting limit exceeded");
  201.         }
  202.         else
  203.         {
  204.             infilestk[nextfstk].fnm = savestring($2,strlen($2));
  205.             if( (infilestk[nextfstk].fpt = fopen($2,"r"))
  206.                 ==(FILE *)NULL )
  207.             {
  208.                 fraerror("cannot open include file");
  209.             }
  210.             else
  211.             {
  212.                 nextreadact = Nra_new;
  213.             }
  214.         }
  215.             }
  216.     |    LABEL KOC_EQU expr 
  217.             {
  218.                 if($1 -> seg == SSG_UNDEF)
  219.                 {
  220.                     pevalexpr(0, $3);
  221.                     if(evalr[0].seg == SSG_ABS)
  222.                     {
  223.                         $1 -> seg = SSG_EQU;
  224.                         $1 -> value = evalr[0].value;
  225.                         prtequvalue("C: 0x%lx\n",
  226.                             evalr[0].value);
  227.                     }
  228.                     else
  229.                     {
  230.                         fraerror(
  231.                     "noncomputable expression for EQU");
  232.                     }
  233.                 }
  234.                 else
  235.                 {
  236.                     fraerror(
  237.                 "cannot change symbol value with EQU");
  238.                 }
  239.             }
  240.     |    LABEL KOC_SET expr 
  241.             {
  242.                 if($1 -> seg == SSG_UNDEF
  243.                    || $1 -> seg == SSG_SET)
  244.                 {
  245.                     pevalexpr(0, $3);
  246.                     if(evalr[0].seg == SSG_ABS)
  247.                     {
  248.                         $1 -> seg = SSG_SET;
  249.                         $1 -> value = evalr[0].value;
  250.                         prtequvalue("C: 0x%lx\n",
  251.                             evalr[0].value);
  252.                     }
  253.                     else
  254.                     {
  255.                         fraerror(
  256.                     "noncomputable expression for SET");
  257.                     }
  258.                 }
  259.                 else
  260.                 {
  261.                     fraerror(
  262.                 "cannot change symbol value with SET");
  263.                 }
  264.             }
  265.     |    KOC_IF expr 
  266.             {
  267.         if((++ifstkpt) < IFSTKDEPTH)
  268.         {
  269.             pevalexpr(0, $2);
  270.             if(evalr[0].seg == SSG_ABS)
  271.             {
  272.                 if(evalr[0].value != 0)
  273.                 {
  274.                     elseifstk[ifstkpt] = If_Skip;
  275.                     endifstk[ifstkpt] = If_Active;
  276.                 }
  277.                 else
  278.                 {
  279.                     fraifskip = TRUE;
  280.                     elseifstk[ifstkpt] = If_Active;
  281.                     endifstk[ifstkpt] = If_Active;
  282.                 }
  283.             }
  284.             else
  285.             {
  286.                 fraifskip = TRUE;
  287.                 elseifstk[ifstkpt] = If_Active;
  288.                 endifstk[ifstkpt] = If_Active;
  289.             }
  290.         }
  291.         else
  292.         {
  293.             fraerror("IF stack overflow");
  294.         }
  295.             }
  296.                         
  297.     |    KOC_IF 
  298.             {
  299.         if(fraifskip) 
  300.         {
  301.             if((++ifstkpt) < IFSTKDEPTH)
  302.             {
  303.                     elseifstk[ifstkpt] = If_Skip;
  304.                     endifstk[ifstkpt] = If_Skip;
  305.             }
  306.             else
  307.             {
  308.                 fraerror("IF stack overflow");
  309.             }
  310.         }
  311.         else
  312.         {
  313.             yyerror("syntax error");
  314.             YYERROR;
  315.         }
  316.                 }
  317.                         
  318.     |    KOC_ELSE 
  319.             {
  320.                 switch(elseifstk[ifstkpt])
  321.                 {
  322.                 case If_Active:
  323.                     fraifskip = FALSE;
  324.                     break;
  325.                 
  326.                 case If_Skip:
  327.                     fraifskip = TRUE;
  328.                     break;
  329.                 
  330.                 case If_Err:
  331.                     fraerror("ELSE with no matching if");
  332.                     break;
  333.                 }
  334.             }
  335.  
  336.     |    KOC_ENDI 
  337.             {
  338.                 switch(endifstk[ifstkpt])
  339.                 {
  340.                 case If_Active:
  341.                     fraifskip = FALSE;
  342.                     ifstkpt--;
  343.                     break;
  344.                 
  345.                 case If_Skip:
  346.                     fraifskip = TRUE;
  347.                     ifstkpt--;
  348.                     break;
  349.                 
  350.                 case If_Err:
  351.                     fraerror("ENDI with no matching if");
  352.                     break;
  353.                 }
  354.             }
  355.     |    LABEL KOC_ORG expr 
  356.             {
  357.                 pevalexpr(0, $3);
  358.                 if(evalr[0].seg == SSG_ABS)
  359.                 {
  360.                     locctr = labelloc = evalr[0].value;
  361.                     if($1 -> seg == SSG_UNDEF)
  362.                     {
  363.                         $1 -> seg = SSG_ABS;
  364.                         $1 -> value = labelloc;
  365.                     }
  366.                     else
  367.                         fraerror(
  368.                         "multiple definition of label");
  369.                     prtequvalue("C: 0x%lx\n",
  370.                         evalr[0].value);
  371.                 }
  372.                 else
  373.                 {
  374.                     fraerror(
  375.                      "noncomputable expression for ORG");
  376.                 }
  377.             }
  378.     |          KOC_ORG expr 
  379.             {
  380.                 pevalexpr(0, $2);
  381.                 if(evalr[0].seg == SSG_ABS)
  382.                 {
  383.                     locctr = labelloc = evalr[0].value;
  384.                     prtequvalue("C: 0x%lx\n",
  385.                         evalr[0].value);
  386.                 }
  387.                 else
  388.                 {
  389.                     fraerror(
  390.                      "noncomputable expression for ORG");
  391.                 }
  392.             }
  393.     |    LABEL KOC_CHSET
  394.             {
  395.                 if($1 -> seg == SSG_UNDEF)
  396.                 {
  397.                     $1 -> seg = SSG_EQU;
  398.                     if( ($1->value = chtcreate()) <= 0)
  399.                     {
  400.         fraerror( "cannot create character translation table");
  401.                     }
  402.                     prtequvalue("C: 0x%lx\n", $1 -> value);
  403.                 }
  404.                 else
  405.                 {
  406.             fraerror( "multiple definition of label");
  407.                 }
  408.             }
  409.     |        KOC_CHUSE
  410.             {
  411.                 chtcpoint = (int *) NULL;
  412.                 prtequvalue("C: 0x%lx\n", 0L);
  413.             }
  414.     |        KOC_CHUSE expr
  415.             {
  416.                 pevalexpr(0, $2);
  417.                 if( evalr[0].seg == SSG_ABS)
  418.                 {
  419.                     if( evalr[0].value == 0)
  420.                     {
  421.                         chtcpoint = (int *)NULL;
  422.                         prtequvalue("C: 0x%lx\n", 0L);
  423.                     }
  424.                     else if(evalr[0].value < chtnxalph)
  425.                     {
  426.                 chtcpoint = chtatab[evalr[0].value];
  427.                 prtequvalue("C: 0x%lx\n", evalr[0].value);
  428.                     }
  429.                     else
  430.                     {
  431.             fraerror("nonexistent character translation table");
  432.                     }
  433.                 }
  434.                 else
  435.                 {
  436.                     fraerror("noncomputable expression");
  437.                 }
  438.             }
  439.     |        KOC_CHDEF STRING ',' exprlist
  440.             {
  441.         int findrv, numret, *charaddr;
  442.         char *sourcestr = $2, *before;
  443.  
  444.         if(chtnpoint != (int *)NULL)
  445.         {
  446.             for(satsub = 0; satsub < $4; satsub++)
  447.             {
  448.                 before = sourcestr;
  449.  
  450.                 pevalexpr(0, exprlist[satsub]);
  451.                 findrv = chtcfind(chtnpoint, &sourcestr,
  452.                         &charaddr, &numret);
  453.                 if(findrv == CF_END)
  454.                 {
  455.             fraerror("more expressions than characters");
  456.                     break;
  457.                 }
  458.  
  459.                 if(evalr[0].seg == SSG_ABS)
  460.                 {
  461.                     switch(findrv)
  462.                     {
  463.                     case CF_UNDEF:
  464.                         {
  465.                 if(evalr[0].value < 0 ||
  466.                     evalr[0].value > 255)
  467.                 {
  468.             frawarn("character translation value truncated");
  469.                 }
  470.                 *charaddr = evalr[0].value & 0xff;
  471.                 prtequvalue("C: 0x%lx\n", evalr[0].value);
  472.                         }
  473.                         break;
  474.  
  475.                     case CF_INVALID:
  476.                     case CF_NUMBER:
  477.                 fracherror("invalid character to define", 
  478.                     before, sourcestr);
  479.                         break;
  480.  
  481.                     case CF_CHAR:
  482.                 fracherror("character already defined", 
  483.                     before, sourcestr);
  484.                         break;
  485.                     }
  486.                 }
  487.                 else
  488.                 {
  489.                     fraerror("noncomputable expression");
  490.                 }
  491.             }
  492.  
  493.             if( *sourcestr != '\0')
  494.             {
  495.                 fraerror("more characters than expressions");
  496.             }
  497.         }
  498.         else
  499.         {
  500.             fraerror("no CHARSET statement active");
  501.         }
  502.             
  503.             }
  504.     |    LABEL 
  505.             {
  506.             if($1 -> seg == SSG_UNDEF)
  507.             {
  508.                 $1 -> seg = SSG_ABS;
  509.                 $1 -> value = labelloc;
  510.                 prtequvalue("C: 0x%lx\n", labelloc);
  511.  
  512.             }
  513.             else
  514.                 fraerror(
  515.                 "multiple definition of label");
  516.             }
  517.     |    labeledline
  518.     ;
  519.  
  520. labeledline :    LABEL genline
  521.             {
  522.             if($1 -> seg == SSG_UNDEF)
  523.             {
  524.                 $1 -> seg = SSG_ABS;
  525.                 $1 -> value = labelloc;
  526.             }
  527.             else
  528.                 fraerror(
  529.                 "multiple definition of label");
  530.             labelloc = locctr;
  531.             }
  532.                 
  533.     |    genline
  534.             {
  535.                 labelloc = locctr;
  536.             }
  537.     ;
  538.  
  539. genline    :    KOC_BDEF    exprlist 
  540.             {
  541.                 genlocrec(currseg, labelloc);
  542.                 for( satsub = 0; satsub < $2; satsub++)
  543.                 {
  544.                     pevalexpr(1, exprlist[satsub]);
  545.                     locctr += geninstr(genbdef);
  546.                 }
  547.             }
  548.     |    KOC_SDEF stringlist 
  549.             {
  550.                 genlocrec(currseg, labelloc);
  551.                 for(satsub = 0; satsub < $2; satsub++)
  552.                 {
  553.                     locctr += genstring(stringlist[satsub]);
  554.                 }
  555.             }
  556.     |    KOC_WDEF exprlist 
  557.             {
  558.                 genlocrec(currseg, labelloc);
  559.                 for( satsub = 0; satsub < $2; satsub++)
  560.                 {
  561.                     pevalexpr(1, exprlist[satsub]);
  562.                     locctr += geninstr(genwdef);
  563.                 }
  564.             }    
  565.     |    KOC_RESM expr 
  566.             {
  567.                 pevalexpr(0, $2);
  568.                 if(evalr[0].seg == SSG_ABS)
  569.                 {
  570.                     locctr = labelloc + evalr[0].value;
  571.                     prtequvalue("C: 0x%lx\n", labelloc);
  572.                 }
  573.                 else
  574.                 {
  575.                     fraerror(
  576.                  "noncomputable result for RMB expression");
  577.                 }
  578.             }
  579.     ;
  580.  
  581. exprlist :    exprlist ',' expr
  582.             {
  583.                 exprlist[nextexprs ++ ] = $3;
  584.                 $$ = nextexprs;
  585.             }
  586.     |    expr
  587.             {
  588.                 nextexprs = 0;
  589.                 exprlist[nextexprs ++ ] = $1;
  590.                 $$ = nextexprs;
  591.             }
  592.     ;
  593.  
  594. stringlist :    stringlist ',' STRING
  595.             {
  596.                 stringlist[nextstrs ++ ] = $3;
  597.                 $$ = nextstrs;
  598.             }
  599.     |    STRING
  600.             {
  601.                 nextstrs = 0;
  602.                 stringlist[nextstrs ++ ] = $1;
  603.                 $$ = nextstrs;
  604.             }
  605.     ;
  606.  
  607.  
  608. genline : KOC_opcode 
  609.             {
  610.         genlocrec(currseg, labelloc);
  611.         locctr += geninstr(findgen($1, ST_INH, 0));
  612.             }
  613.     ;
  614. genline : KOC_opcode  ACCUM
  615.             {
  616.         genlocrec(currseg, labelloc);
  617.         locctr += geninstr(findgen($1, ST_ACC, $2));
  618.             }
  619.     ;
  620. genline : KOC_opcode  INDEX
  621.             {
  622.         genlocrec(currseg, labelloc);
  623.         locctr += geninstr(findgen($1, ST_INDREG, 0));
  624.             }
  625.     ;
  626. genline : KOC_opcode  expr
  627.             {
  628.         pevalexpr(1, $2);
  629.         genlocrec(currseg, labelloc);
  630.         locctr += geninstr( findgen( $1, ST_EXP, 
  631.                   ( (evalr[1].seg == SSG_ABS 
  632.                 && evalr[1].value >= 0
  633.                 && evalr[1].value <= 255 )
  634.                 ? DIRECT : EXTENDED ) )
  635.                 );
  636.             }
  637.     ;
  638. genline : KOC_opcode  '#' expr
  639.             {
  640.         pevalexpr(1, $3);
  641.         genlocrec(currseg, labelloc);
  642.         locctr += geninstr( findgen($1, ST_IMM, 0));
  643.             }
  644.     ;
  645. genline : KOC_opcode  indexed
  646.             {
  647.         pevalexpr(1, $2.ex);
  648.         genlocrec(currseg, labelloc);
  649.         locctr += geninstr( findgen($1, ST_IND, 0));
  650.             }
  651.     ;
  652. genline : KOC_opcode  ACCUM expr
  653.             {
  654.         pevalexpr(1, $3);
  655.         genlocrec(currseg, labelloc);
  656.         locctr += geninstr(findgen( $1, ST_AEXP, $2
  657.                  + ( (evalr[1].seg == SSG_ABS 
  658.                 && evalr[1].value >= 0
  659.                 && evalr[1].value <= 255 )
  660.                 ? DIRECT : EXTENDED ) ) );
  661.             }
  662.     ;
  663. genline : KOC_opcode  ACCUM '#' expr
  664.             {
  665.         pevalexpr(1,$4);
  666.         genlocrec(currseg, labelloc);
  667.         locctr += geninstr( findgen($1, ST_AIMM, $2 ));
  668.             }
  669.     ;
  670. genline : KOC_opcode  ACCUM indexed
  671.             {
  672.         pevalexpr(1, $3.ex);
  673.         genlocrec(currseg, labelloc);
  674.         locctr += geninstr( findgen($1, ST_AIND, $2));
  675.             }
  676.     ;
  677. genline : KOC_opcode  expr ',' expr
  678.             {
  679.         pevalexpr(1,$2);
  680.         if(evalr[1].seg != SSG_ABS || 
  681.             evalr[1].value < 0 ||
  682.             evalr[1].value > 7)
  683.         {
  684.             evalr[1].value = 0;
  685.             fraerror("impossible bit number");
  686.         }
  687.         pevalexpr(2,$4);
  688.         genlocrec(currseg, labelloc);
  689.         locctr += geninstr( findgen( $1, ST_BSET, 1<<evalr[1].value));
  690.             }
  691.     ;
  692. genline : KOC_opcode  expr ',' indexed 
  693.             {
  694.         pevalexpr(1,$2);
  695.         if(evalr[1].seg != SSG_ABS || 
  696.             evalr[1].value < 0 ||
  697.             evalr[1].value > 7)
  698.         {
  699.             evalr[1].value = 0;
  700.             fraerror("impossible bit number");
  701.         }
  702.         pevalexpr(2,$4.ex);
  703.         genlocrec(currseg, labelloc);
  704.         locctr += geninstr( findgen( $1, ST_BSETIND, 
  705.                     1<<evalr[1].value));
  706.             }
  707.     ;
  708. genline : KOC_opcode  '#' expr ',' expr
  709.             {
  710.         pevalexpr(1, $3);
  711.         pevalexpr(2, $5);
  712.         genlocrec(currseg, labelloc);
  713.         locctr += geninstr( findgen( $1, ST_MEMIMM, 0));
  714.             }
  715.     ;
  716. genline : KOC_opcode  '#' expr ',' indexed 
  717.             {
  718.         pevalexpr(1, $3);
  719.         pevalexpr(2, $5.ex);
  720.         genlocrec(currseg, labelloc);
  721.         locctr += geninstr( findgen( $1, ST_MEMIMMIND, 0));
  722.             }
  723.     ;
  724. indexed    :    INDEX ',' expr
  725.             {
  726.                 $$.ex = $3;
  727.                 $$.indexv = $1;
  728.             }
  729.     |    expr ',' INDEX
  730.             {
  731.                 $$.ex = $1;
  732.                 $$.indexv = $3;
  733.             }
  734.     ;
  735.  
  736. expr    :    '+' expr %prec KEOP_MUN
  737.             {
  738.                 $$ = $2;
  739.             }
  740.     |    '-' expr %prec KEOP_MUN
  741.             {
  742.                 $$ = exprnode(PCCASE_UN,$2,IFC_NEG,0,0L,
  743.                     SYMNULL);
  744.             }
  745.     |    KEOP_NOT expr
  746.             {
  747.                 $$ = exprnode(PCCASE_UN,$2,IFC_NOT,0,0L,
  748.                     SYMNULL);
  749.             }
  750.     |    KEOP_HIGH expr
  751.             {
  752.                 $$ = exprnode(PCCASE_UN,$2,IFC_HIGH,0,0L,
  753.                     SYMNULL);
  754.             }
  755.     |    KEOP_LOW expr
  756.             {
  757.                 $$ = exprnode(PCCASE_UN,$2,IFC_LOW,0,0L,
  758.                     SYMNULL);
  759.             }
  760.     |    expr '*' expr
  761.             {
  762.                 $$ = exprnode(PCCASE_BIN,$1,IFC_MUL,$3,0L,
  763.                     SYMNULL);
  764.             }
  765.     |    expr '/' expr
  766.             {
  767.                 $$ = exprnode(PCCASE_BIN,$1,IFC_DIV,$3,0L,
  768.                     SYMNULL);
  769.             }
  770.     |    expr '+' expr
  771.             {
  772.                 $$ = exprnode(PCCASE_BIN,$1,IFC_ADD,$3,0L,
  773.                     SYMNULL);
  774.             }
  775.     |    expr '-' expr
  776.             {
  777.                 $$ = exprnode(PCCASE_BIN,$1,IFC_SUB,$3,0L,
  778.                     SYMNULL);
  779.             }
  780.     |    expr KEOP_MOD expr
  781.             {
  782.                 $$ = exprnode(PCCASE_BIN,$1,IFC_MOD,$3,0L,
  783.                     SYMNULL);
  784.             }
  785.     |    expr KEOP_SHL expr
  786.             {
  787.                 $$ = exprnode(PCCASE_BIN,$1,IFC_SHL,$3,0L,
  788.                     SYMNULL);
  789.             }
  790.     |    expr KEOP_SHR expr
  791.             {
  792.                 $$ = exprnode(PCCASE_BIN,$1,IFC_SHR,$3,0L,
  793.                     SYMNULL);
  794.             }
  795.     |    expr KEOP_GT expr
  796.             {
  797.                 $$ = exprnode(PCCASE_BIN,$1,IFC_GT,$3,0L,
  798.                     SYMNULL);
  799.             }
  800.     |    expr KEOP_GE expr
  801.             {
  802.                 $$ = exprnode(PCCASE_BIN,$1,IFC_GE,$3,0L,
  803.                     SYMNULL);
  804.             }
  805.     |    expr KEOP_LT expr
  806.             {
  807.                 $$ = exprnode(PCCASE_BIN,$1,IFC_LT,$3,0L,
  808.                     SYMNULL);
  809.             }
  810.     |    expr KEOP_LE expr
  811.             {
  812.                 $$ = exprnode(PCCASE_BIN,$1,IFC_LE,$3,0L,
  813.                     SYMNULL);
  814.             }
  815.     |    expr KEOP_NE expr
  816.             {
  817.                 $$ = exprnode(PCCASE_BIN,$1,IFC_NE,$3,0L,
  818.                     SYMNULL);
  819.             }
  820.     |    expr KEOP_EQ expr
  821.             {
  822.                 $$ = exprnode(PCCASE_BIN,$1,IFC_EQ,$3,0L,
  823.                     SYMNULL);
  824.             }
  825.     |    expr KEOP_AND expr
  826.             {
  827.                 $$ = exprnode(PCCASE_BIN,$1,IFC_AND,$3,0L,
  828.                     SYMNULL);
  829.             }
  830.     |    expr KEOP_OR expr
  831.             {
  832.                 $$ = exprnode(PCCASE_BIN,$1,IFC_OR,$3,0L,
  833.                     SYMNULL);
  834.             }
  835.     |    expr KEOP_XOR expr
  836.             {
  837.                 $$ = exprnode(PCCASE_BIN,$1,IFC_XOR,$3,0L,
  838.                     SYMNULL);
  839.             }
  840.     |    KEOP_DEFINED SYMBOL
  841.             {
  842.                 $$ = exprnode(PCCASE_DEF,0,IGP_DEFINED,0,0L,$2);
  843.             }
  844.     |    SYMBOL
  845.             {
  846.                 $$ = exprnode(PCCASE_SYMB,0,IFC_SYMB,0,0L,$1);
  847.             }
  848.     |    '*'
  849.             {
  850.                 $$ = exprnode(PCCASE_PROGC,0,IFC_PROGCTR,0,
  851.                     labelloc, SYMNULL);
  852.             }
  853.     |    CONSTANT
  854.             {
  855.                 $$ = exprnode(PCCASE_CONS,0,IGP_CONSTANT,0,$1,
  856.                     SYMNULL);
  857.             }
  858.     |    STRING
  859.             {
  860.                 char *sourcestr = $1;
  861.                 long accval = 0;
  862.  
  863.                 if(strlen($1) > 0)
  864.                 {
  865.                     accval = chtran(&sourcestr);
  866.                     if(*sourcestr != '\0')
  867.                     {
  868.                         accval = (accval << 8) +
  869.                             chtran(&sourcestr);
  870.                     }
  871.  
  872.                     if( *sourcestr != '\0')
  873.                     {
  874.     frawarn("string constant in expression more than 2 characters long");
  875.                     }
  876.                 }
  877.                 $$ = exprnode(PCCASE_CONS, 0, IGP_CONSTANT, 0,
  878.                     accval, SYMNULL);
  879.             }
  880.     |    '(' expr ')'
  881.             {
  882.                 $$ = $2;
  883.             }
  884.     ;
  885.  
  886.  
  887. %%
  888.  
  889. lexintercept()
  890. /*
  891.     description    intercept the call to yylex (the lexical analyzer)
  892.             and filter out all unnecessary tokens when skipping
  893.             the input between a failed IF and its matching ENDI or
  894.             ELSE
  895.     globals     fraifskip    the enable flag
  896. */
  897. {
  898. #undef yylex
  899.  
  900.     int rv;
  901.  
  902.     if(fraifskip)
  903.     {
  904.         for(;;)
  905.         {
  906.  
  907.             switch(rv = yylex())
  908.  
  909.             {
  910.             case 0:
  911.             case KOC_END:
  912.             case KOC_IF:
  913.             case KOC_ELSE:
  914.             case KOC_ENDI:
  915.             case EOL:
  916.                 return rv;
  917.             default:
  918.                 break;
  919.             }
  920.         }
  921.     }
  922.     else
  923.         return yylex();
  924. #define yylex lexintercept
  925. }
  926.  
  927.  
  928. setreserved()
  929. {
  930.  
  931.     reservedsym("and", KEOP_AND, 0);
  932.     reservedsym("defined", KEOP_DEFINED,0);
  933.     reservedsym("eq", KEOP_EQ, 0);
  934.     reservedsym("ge", KEOP_GE, 0);
  935.     reservedsym("gt", KEOP_GT, 0);
  936.     reservedsym("high", KEOP_HIGH, 0);
  937.     reservedsym("le", KEOP_LE, 0);
  938.     reservedsym("low", KEOP_LOW, 0);
  939.     reservedsym("lt", KEOP_LT, 0);
  940.     reservedsym("mod", KEOP_MOD, 0);
  941.     reservedsym("ne", KEOP_NE, 0);
  942.     reservedsym("not", KEOP_NOT, 0);
  943.     reservedsym("or", KEOP_OR, 0);
  944.     reservedsym("shl", KEOP_SHL, 0);
  945.     reservedsym("shr", KEOP_SHR, 0);
  946.     reservedsym("xor", KEOP_XOR, 0);
  947.     reservedsym("AND", KEOP_AND, 0);
  948.     reservedsym("DEFINED", KEOP_DEFINED,0);
  949.     reservedsym("EQ", KEOP_EQ, 0);
  950.     reservedsym("GE", KEOP_GE, 0);
  951.     reservedsym("GT", KEOP_GT, 0);
  952.     reservedsym("HIGH", KEOP_HIGH, 0);
  953.     reservedsym("LE", KEOP_LE, 0);
  954.     reservedsym("LOW", KEOP_LOW, 0);
  955.     reservedsym("LT", KEOP_LT, 0);
  956.     reservedsym("MOD", KEOP_MOD, 0);
  957.     reservedsym("NE", KEOP_NE, 0);
  958.     reservedsym("NOT", KEOP_NOT, 0);
  959.     reservedsym("OR", KEOP_OR, 0);
  960.     reservedsym("SHL", KEOP_SHL, 0);
  961.     reservedsym("SHR", KEOP_SHR, 0);
  962.     reservedsym("XOR", KEOP_XOR, 0);
  963.  
  964.  
  965.     reservedsym("a", ACCUM, REGA);
  966.     reservedsym("b", ACCUM, REGB);
  967.     reservedsym("x", INDEX, 0);
  968.     reservedsym("A", ACCUM, REGA);
  969.     reservedsym("B", ACCUM, REGB);
  970.     reservedsym("X", INDEX, 0);
  971. }
  972.  
  973. cpumatch(str)
  974.     char * str;
  975. {
  976.     return TRUE;
  977. }
  978.  
  979. /*
  980.     description    Opcode and Instruction generation tables
  981.     usage        Unix, framework crossassembler
  982.     history        September 25, 1987
  983. */
  984.  
  985. #define NUMOPCODE 171
  986. #define NUMSYNBLK 263
  987. #define NUMDIFFOP 419
  988.  
  989. int gnumopcode = NUMOPCODE;
  990.  
  991. int ophashlnk[NUMOPCODE];
  992.  
  993. struct opsym optab[NUMOPCODE+1]
  994.     = {
  995.     {"invalid", KOC_opcode, 2, 0 },
  996.     {"ABA", KOC_opcode, 1, 2 },
  997.     {"ABX", KOC_opcode, 1, 3 },
  998.     {"ADC", KOC_opcode, 3, 4 },
  999.     {"ADCA", KOC_opcode, 3, 7 },
  1000.     {"ADCB", KOC_opcode, 3, 10 },
  1001.     {"ADD", KOC_opcode, 3, 13 },
  1002.     {"ADDA", KOC_opcode, 3, 16 },
  1003.     {"ADDB", KOC_opcode, 3, 19 },
  1004.     {"ADDD", KOC_opcode, 3, 22 },
  1005.     {"AIM", KOC_opcode, 2, 25 },
  1006.     {"AND", KOC_opcode, 3, 27 },
  1007.     {"ANDA", KOC_opcode, 3, 30 },
  1008.     {"ANDB", KOC_opcode, 3, 33 },
  1009.     {"ASL", KOC_opcode, 3, 36 },
  1010.     {"ASLA", KOC_opcode, 1, 39 },
  1011.     {"ASLB", KOC_opcode, 1, 40 },
  1012.     {"ASLD", KOC_opcode, 1, 41 },
  1013.     {"ASR", KOC_opcode, 3, 42 },
  1014.     {"ASRA", KOC_opcode, 1, 45 },
  1015.     {"ASRB", KOC_opcode, 1, 46 },
  1016.     {"BCC", KOC_opcode, 1, 47 },
  1017.     {"BCLR", KOC_opcode, 2, 48 },
  1018.     {"BCS", KOC_opcode, 1, 50 },
  1019.     {"BEQ", KOC_opcode, 1, 51 },
  1020.     {"BGE", KOC_opcode, 1, 52 },
  1021.     {"BGT", KOC_opcode, 1, 53 },
  1022.     {"BHI", KOC_opcode, 1, 54 },
  1023.     {"BHS", KOC_opcode, 1, 55 },
  1024.     {"BIT", KOC_opcode, 3, 56 },
  1025.     {"BITA", KOC_opcode, 3, 59 },
  1026.     {"BITB", KOC_opcode, 3, 62 },
  1027.     {"BLE", KOC_opcode, 1, 65 },
  1028.     {"BLO", KOC_opcode, 1, 66 },
  1029.     {"BLS", KOC_opcode, 1, 67 },
  1030.     {"BLT", KOC_opcode, 1, 68 },
  1031.     {"BMI", KOC_opcode, 1, 69 },
  1032.     {"BNE", KOC_opcode, 1, 70 },
  1033.     {"BPL", KOC_opcode, 1, 71 },
  1034.     {"BRA", KOC_opcode, 1, 72 },
  1035.     {"BRN", KOC_opcode, 1, 73 },
  1036.     {"BSET", KOC_opcode, 2, 74 },
  1037.     {"BSR", KOC_opcode, 1, 76 },
  1038.     {"BTGL", KOC_opcode, 2, 77 },
  1039.     {"BTST", KOC_opcode, 2, 79 },
  1040.     {"BVC", KOC_opcode, 1, 81 },
  1041.     {"BVS", KOC_opcode, 1, 82 },
  1042.     {"BYTE", KOC_BDEF, 0, 0 },
  1043.     {"CBA", KOC_opcode, 1, 83 },
  1044.     {"CHARDEF", KOC_CHDEF, 0, 0 },
  1045.     {"CHARSET", KOC_CHSET, 0, 0 },
  1046.     {"CHARUSE", KOC_CHUSE, 0, 0 },
  1047.     {"CHD", KOC_CHDEF, 0, 0 },
  1048.     {"CLC", KOC_opcode, 1, 84 },
  1049.     {"CLI", KOC_opcode, 1, 85 },
  1050.     {"CLR", KOC_opcode, 3, 86 },
  1051.     {"CLRA", KOC_opcode, 1, 89 },
  1052.     {"CLRB", KOC_opcode, 1, 90 },
  1053.     {"CLV", KOC_opcode, 1, 91 },
  1054.     {"CMP", KOC_opcode, 3, 92 },
  1055.     {"CMPA", KOC_opcode, 3, 95 },
  1056.     {"CMPB", KOC_opcode, 3, 98 },
  1057.     {"COM", KOC_opcode, 3, 101 },
  1058.     {"COMA", KOC_opcode, 1, 104 },
  1059.     {"COMB", KOC_opcode, 1, 105 },
  1060.     {"CPX", KOC_opcode, 3, 106 },
  1061.     {"DAA", KOC_opcode, 1, 109 },
  1062.     {"DB", KOC_BDEF, 0, 0 },
  1063.     {"DEC", KOC_opcode, 3, 110 },
  1064.     {"DECA", KOC_opcode, 1, 113 },
  1065.     {"DECB", KOC_opcode, 1, 114 },
  1066.     {"DES", KOC_opcode, 1, 115 },
  1067.     {"DEX", KOC_opcode, 1, 116 },
  1068.     {"DW", KOC_WDEF, 0, 0 },
  1069.     {"EIM", KOC_opcode, 2, 117 },
  1070.     {"ELSE", KOC_ELSE, 0, 0 },
  1071.     {"END", KOC_END, 0, 0 },
  1072.     {"ENDI", KOC_ENDI, 0, 0 },
  1073.     {"EOR", KOC_opcode, 3, 119 },
  1074.     {"EORA", KOC_opcode, 3, 122 },
  1075.     {"EORB", KOC_opcode, 3, 125 },
  1076.     {"EQU", KOC_EQU, 0, 0 },
  1077.     {"FCB", KOC_BDEF, 0, 0 },
  1078.     {"FCC", KOC_SDEF, 0, 0 },
  1079.     {"FDB", KOC_WDEF, 0, 0 },
  1080.     {"IF", KOC_IF, 0, 0 },
  1081.     {"INC", KOC_opcode, 3, 128 },
  1082.     {"INCA", KOC_opcode, 1, 131 },
  1083.     {"INCB", KOC_opcode, 1, 132 },
  1084.     {"INCL", KOC_INCLUDE, 0, 0 },
  1085.     {"INCLUDE", KOC_INCLUDE, 0, 0 },
  1086.     {"INS", KOC_opcode, 1, 133 },
  1087.     {"INX", KOC_opcode, 1, 134 },
  1088.     {"JMP", KOC_opcode, 2, 135 },
  1089.     {"JSR", KOC_opcode, 2, 137 },
  1090.     {"LDA", KOC_opcode, 3, 139 },
  1091.     {"LDAA", KOC_opcode, 3, 142 },
  1092.     {"LDAB", KOC_opcode, 3, 145 },
  1093.     {"LDD", KOC_opcode, 3, 148 },
  1094.     {"LDS", KOC_opcode, 3, 151 },
  1095.     {"LDX", KOC_opcode, 3, 154 },
  1096.     {"LSL", KOC_opcode, 3, 157 },
  1097.     {"LSLA", KOC_opcode, 1, 160 },
  1098.     {"LSLB", KOC_opcode, 1, 161 },
  1099.     {"LSLD", KOC_opcode, 1, 162 },
  1100.     {"LSR", KOC_opcode, 3, 163 },
  1101.     {"LSRA", KOC_opcode, 1, 166 },
  1102.     {"LSRB", KOC_opcode, 1, 167 },
  1103.     {"LSRD", KOC_opcode, 1, 168 },
  1104.     {"MUL", KOC_opcode, 1, 169 },
  1105.     {"NEG", KOC_opcode, 3, 170 },
  1106.     {"NEGA", KOC_opcode, 1, 173 },
  1107.     {"NEGB", KOC_opcode, 1, 174 },
  1108.     {"NOP", KOC_opcode, 1, 175 },
  1109.     {"OIM", KOC_opcode, 2, 176 },
  1110.     {"ORA", KOC_opcode, 3, 178 },
  1111.     {"ORAA", KOC_opcode, 3, 181 },
  1112.     {"ORAB", KOC_opcode, 3, 184 },
  1113.     {"ORG", KOC_ORG, 0, 0 },
  1114.     {"PSH", KOC_opcode, 2, 187 },
  1115.     {"PSHA", KOC_opcode, 1, 189 },
  1116.     {"PSHB", KOC_opcode, 1, 190 },
  1117.     {"PSHX", KOC_opcode, 1, 191 },
  1118.     {"PUL", KOC_opcode, 2, 192 },
  1119.     {"PULA", KOC_opcode, 1, 194 },
  1120.     {"PULB", KOC_opcode, 1, 195 },
  1121.     {"PULX", KOC_opcode, 1, 196 },
  1122.     {"RESERVE", KOC_RESM, 0, 0 },
  1123.     {"RMB", KOC_RESM, 0, 0 },
  1124.     {"ROL", KOC_opcode, 3, 197 },
  1125.     {"ROLA", KOC_opcode, 1, 200 },
  1126.     {"ROLB", KOC_opcode, 1, 201 },
  1127.     {"ROR", KOC_opcode, 3, 202 },
  1128.     {"RORA", KOC_opcode, 1, 205 },
  1129.     {"RORB", KOC_opcode, 1, 206 },
  1130.     {"RTI", KOC_opcode, 1, 207 },
  1131.     {"RTS", KOC_opcode, 1, 208 },
  1132.     {"SBA", KOC_opcode, 1, 209 },
  1133.     {"SBC", KOC_opcode, 3, 210 },
  1134.     {"SBCA", KOC_opcode, 3, 213 },
  1135.     {"SBCB", KOC_opcode, 3, 216 },
  1136.     {"SEC", KOC_opcode, 1, 219 },
  1137.     {"SEI", KOC_opcode, 1, 220 },
  1138.     {"SET", KOC_SET, 0, 0 },
  1139.     {"SEV", KOC_opcode, 1, 221 },
  1140.     {"SLP", KOC_opcode, 1, 222 },
  1141.     {"STA", KOC_opcode, 2, 223 },
  1142.     {"STAA", KOC_opcode, 2, 225 },
  1143.     {"STAB", KOC_opcode, 2, 227 },
  1144.     {"STD", KOC_opcode, 2, 229 },
  1145.     {"STRING", KOC_SDEF, 0, 0 },
  1146.     {"STS", KOC_opcode, 2, 231 },
  1147.     {"STX", KOC_opcode, 2, 233 },
  1148.     {"SUB", KOC_opcode, 3, 235 },
  1149.     {"SUBA", KOC_opcode, 3, 238 },
  1150.     {"SUBB", KOC_opcode, 3, 241 },
  1151.     {"SUBD", KOC_opcode, 3, 244 },
  1152.     {"SWI", KOC_opcode, 1, 247 },
  1153.     {"TAB", KOC_opcode, 1, 248 },
  1154.     {"TAP", KOC_opcode, 1, 249 },
  1155.     {"TBA", KOC_opcode, 1, 250 },
  1156.     {"TIM", KOC_opcode, 2, 251 },
  1157.     {"TPA", KOC_opcode, 1, 253 },
  1158.     {"TST", KOC_opcode, 3, 254 },
  1159.     {"TSTA", KOC_opcode, 1, 257 },
  1160.     {"TSTB", KOC_opcode, 1, 258 },
  1161.     {"TSX", KOC_opcode, 1, 259 },
  1162.     {"TXS", KOC_opcode, 1, 260 },
  1163.     {"WAI", KOC_opcode, 1, 261 },
  1164.     {"WORD", KOC_WDEF, 0, 0 },
  1165.     {"XGDX", KOC_opcode, 1, 262 },
  1166.     { "", 0, 0, 0 }};
  1167.  
  1168. struct opsynt ostab[NUMSYNBLK+1]
  1169.     = {
  1170. /* invalid 0 */ { 0, 1, 0 },
  1171. /* invalid 1 */ { 0xffff, 1, 1 },
  1172. /* ABA 2 */ { ST_INH, 1, 2 },
  1173. /* ABX 3 */ { ST_INH, 1, 3 },
  1174. /* ADC 4 */ { ST_AEXP, 4, 4 },
  1175. /* ADC 5 */ { ST_AIMM, 2, 8 },
  1176. /* ADC 6 */ { ST_AIND, 2, 10 },
  1177. /* ADCA 7 */ { ST_EXP, 2, 12 },
  1178. /* ADCA 8 */ { ST_IMM, 1, 14 },
  1179. /* ADCA 9 */ { ST_IND, 1, 15 },
  1180. /* ADCB 10 */ { ST_EXP, 2, 16 },
  1181. /* ADCB 11 */ { ST_IMM, 1, 18 },
  1182. /* ADCB 12 */ { ST_IND, 1, 19 },
  1183. /* ADD 13 */ { ST_AEXP, 4, 20 },
  1184. /* ADD 14 */ { ST_AIMM, 2, 24 },
  1185. /* ADD 15 */ { ST_AIND, 2, 26 },
  1186. /* ADDA 16 */ { ST_EXP, 2, 28 },
  1187. /* ADDA 17 */ { ST_IMM, 1, 30 },
  1188. /* ADDA 18 */ { ST_IND, 1, 31 },
  1189. /* ADDB 19 */ { ST_EXP, 2, 32 },
  1190. /* ADDB 20 */ { ST_IMM, 1, 34 },
  1191. /* ADDB 21 */ { ST_IND, 1, 35 },
  1192. /* ADDD 22 */ { ST_EXP, 2, 36 },
  1193. /* ADDD 23 */ { ST_IMM, 1, 38 },
  1194. /* ADDD 24 */ { ST_IND, 1, 39 },
  1195. /* AIM 25 */ { ST_MEMIMM, 1, 40 },
  1196. /* AIM 26 */ { ST_MEMIMMIND, 1, 41 },
  1197. /* AND 27 */ { ST_AEXP, 4, 42 },
  1198. /* AND 28 */ { ST_AIMM, 2, 46 },
  1199. /* AND 29 */ { ST_AIND, 2, 48 },
  1200. /* ANDA 30 */ { ST_EXP, 2, 50 },
  1201. /* ANDA 31 */ { ST_IMM, 1, 52 },
  1202. /* ANDA 32 */ { ST_IND, 1, 53 },
  1203. /* ANDB 33 */ { ST_EXP, 2, 54 },
  1204. /* ANDB 34 */ { ST_IMM, 1, 56 },
  1205. /* ANDB 35 */ { ST_IND, 1, 57 },
  1206. /* ASL 36 */ { ST_ACC, 2, 58 },
  1207. /* ASL 37 */ { ST_EXP, 1, 60 },
  1208. /* ASL 38 */ { ST_IND, 1, 61 },
  1209. /* ASLA 39 */ { ST_INH, 1, 62 },
  1210. /* ASLB 40 */ { ST_INH, 1, 63 },
  1211. /* ASLD 41 */ { ST_INH, 1, 64 },
  1212. /* ASR 42 */ { ST_ACC, 2, 65 },
  1213. /* ASR 43 */ { ST_EXP, 1, 67 },
  1214. /* ASR 44 */ { ST_IND, 1, 68 },
  1215. /* ASRA 45 */ { ST_INH, 1, 69 },
  1216. /* ASRB 46 */ { ST_INH, 1, 70 },
  1217. /* BCC 47 */ { ST_EXP, 1, 71 },
  1218. /* BCLR 48 */ { ST_BSET, 8, 72 },
  1219. /* BCLR 49 */ { ST_BSETIND, 8, 80 },
  1220. /* BCS 50 */ { ST_EXP, 1, 88 },
  1221. /* BEQ 51 */ { ST_EXP, 1, 89 },
  1222. /* BGE 52 */ { ST_EXP, 1, 90 },
  1223. /* BGT 53 */ { ST_EXP, 1, 91 },
  1224. /* BHI 54 */ { ST_EXP, 1, 92 },
  1225. /* BHS 55 */ { ST_EXP, 1, 93 },
  1226. /* BIT 56 */ { ST_AEXP, 4, 94 },
  1227. /* BIT 57 */ { ST_AIMM, 2, 98 },
  1228. /* BIT 58 */ { ST_AIND, 2, 100 },
  1229. /* BITA 59 */ { ST_EXP, 2, 102 },
  1230. /* BITA 60 */ { ST_IMM, 1, 104 },
  1231. /* BITA 61 */ { ST_IND, 1, 105 },
  1232. /* BITB 62 */ { ST_EXP, 2, 106 },
  1233. /* BITB 63 */ { ST_IMM, 1, 108 },
  1234. /* BITB 64 */ { ST_IND, 1, 109 },
  1235. /* BLE 65 */ { ST_EXP, 1, 110 },
  1236. /* BLO 66 */ { ST_EXP, 1, 111 },
  1237. /* BLS 67 */ { ST_EXP, 1, 112 },
  1238. /* BLT 68 */ { ST_EXP, 1, 113 },
  1239. /* BMI 69 */ { ST_EXP, 1, 114 },
  1240. /* BNE 70 */ { ST_EXP, 1, 115 },
  1241. /* BPL 71 */ { ST_EXP, 1, 116 },
  1242. /* BRA 72 */ { ST_EXP, 1, 117 },
  1243. /* BRN 73 */ { ST_EXP, 1, 118 },
  1244. /* BSET 74 */ { ST_BSET, 8, 119 },
  1245. /* BSET 75 */ { ST_BSETIND, 8, 127 },
  1246. /* BSR 76 */ { ST_EXP, 1, 135 },
  1247. /* BTGL 77 */ { ST_BSET, 8, 136 },
  1248. /* BTGL 78 */ { ST_BSETIND, 8, 144 },
  1249. /* BTST 79 */ { ST_BSET, 8, 152 },
  1250. /* BTST 80 */ { ST_BSETIND, 8, 160 },
  1251. /* BVC 81 */ { ST_EXP, 1, 168 },
  1252. /* BVS 82 */ { ST_EXP, 1, 169 },
  1253. /* CBA 83 */ { ST_INH, 1, 170 },
  1254. /* CLC 84 */ { ST_INH, 1, 171 },
  1255. /* CLI 85 */ { ST_INH, 1, 172 },
  1256. /* CLR 86 */ { ST_ACC, 2, 173 },
  1257. /* CLR 87 */ { ST_EXP, 1, 175 },
  1258. /* CLR 88 */ { ST_IND, 1, 176 },
  1259. /* CLRA 89 */ { ST_INH, 1, 177 },
  1260. /* CLRB 90 */ { ST_INH, 1, 178 },
  1261. /* CLV 91 */ { ST_INH, 1, 179 },
  1262. /* CMP 92 */ { ST_AEXP, 4, 180 },
  1263. /* CMP 93 */ { ST_AIMM, 2, 184 },
  1264. /* CMP 94 */ { ST_AIND, 2, 186 },
  1265. /* CMPA 95 */ { ST_EXP, 2, 188 },
  1266. /* CMPA 96 */ { ST_IMM, 1, 190 },
  1267. /* CMPA 97 */ { ST_IND, 1, 191 },
  1268. /* CMPB 98 */ { ST_EXP, 2, 192 },
  1269. /* CMPB 99 */ { ST_IMM, 1, 194 },
  1270. /* CMPB 100 */ { ST_IND, 1, 195 },
  1271. /* COM 101 */ { ST_ACC, 2, 196 },
  1272. /* COM 102 */ { ST_EXP, 1, 198 },
  1273. /* COM 103 */ { ST_IND, 1, 199 },
  1274. /* COMA 104 */ { ST_INH, 1, 200 },
  1275. /* COMB 105 */ { ST_INH, 1, 201 },
  1276. /* CPX 106 */ { ST_EXP, 2, 202 },
  1277. /* CPX 107 */ { ST_IMM, 1, 204 },
  1278. /* CPX 108 */ { ST_IND, 1, 205 },
  1279. /* DAA 109 */ { ST_INH, 1, 206 },
  1280. /* DEC 110 */ { ST_ACC, 2, 207 },
  1281. /* DEC 111 */ { ST_EXP, 1, 209 },
  1282. /* DEC 112 */ { ST_IND, 1, 210 },
  1283. /* DECA 113 */ { ST_INH, 1, 211 },
  1284. /* DECB 114 */ { ST_INH, 1, 212 },
  1285. /* DES 115 */ { ST_INH, 1, 213 },
  1286. /* DEX 116 */ { ST_INH, 1, 214 },
  1287. /* EIM 117 */ { ST_MEMIMM, 1, 215 },
  1288. /* EIM 118 */ { ST_MEMIMMIND, 1, 216 },
  1289. /* EOR 119 */ { ST_AEXP, 4, 217 },
  1290. /* EOR 120 */ { ST_AIMM, 2, 221 },
  1291. /* EOR 121 */ { ST_AIND, 2, 223 },
  1292. /* EORA 122 */ { ST_EXP, 2, 225 },
  1293. /* EORA 123 */ { ST_IMM, 1, 227 },
  1294. /* EORA 124 */ { ST_IND, 1, 228 },
  1295. /* EORB 125 */ { ST_EXP, 2, 229 },
  1296. /* EORB 126 */ { ST_IMM, 1, 231 },
  1297. /* EORB 127 */ { ST_IND, 1, 232 },
  1298. /* INC 128 */ { ST_ACC, 2, 233 },
  1299. /* INC 129 */ { ST_EXP, 1, 235 },
  1300. /* INC 130 */ { ST_IND, 1, 236 },
  1301. /* INCA 131 */ { ST_INH, 1, 237 },
  1302. /* INCB 132 */ { ST_INH, 1, 238 },
  1303. /* INS 133 */ { ST_INH, 1, 239 },
  1304. /* INX 134 */ { ST_INH, 1, 240 },
  1305. /* JMP 135 */ { ST_EXP, 1, 241 },
  1306. /* JMP 136 */ { ST_IND, 1, 242 },
  1307. /* JSR 137 */ { ST_EXP, 2, 243 },
  1308. /* JSR 138 */ { ST_IND, 1, 245 },
  1309. /* LDA 139 */ { ST_AEXP, 4, 246 },
  1310. /* LDA 140 */ { ST_AIMM, 2, 250 },
  1311. /* LDA 141 */ { ST_AIND, 2, 252 },
  1312. /* LDAA 142 */ { ST_EXP, 2, 254 },
  1313. /* LDAA 143 */ { ST_IMM, 1, 256 },
  1314. /* LDAA 144 */ { ST_IND, 1, 257 },
  1315. /* LDAB 145 */ { ST_EXP, 2, 258 },
  1316. /* LDAB 146 */ { ST_IMM, 1, 260 },
  1317. /* LDAB 147 */ { ST_IND, 1, 261 },
  1318. /* LDD 148 */ { ST_EXP, 2, 262 },
  1319. /* LDD 149 */ { ST_IMM, 1, 264 },
  1320. /* LDD 150 */ { ST_IND, 1, 265 },
  1321. /* LDS 151 */ { ST_EXP, 2, 266 },
  1322. /* LDS 152 */ { ST_IMM, 1, 268 },
  1323. /* LDS 153 */ { ST_IND, 1, 269 },
  1324. /* LDX 154 */ { ST_EXP, 2, 270 },
  1325. /* LDX 155 */ { ST_IMM, 1, 272 },
  1326. /* LDX 156 */ { ST_IND, 1, 273 },
  1327. /* LSL 157 */ { ST_ACC, 2, 274 },
  1328. /* LSL 158 */ { ST_EXP, 1, 276 },
  1329. /* LSL 159 */ { ST_IND, 1, 277 },
  1330. /* LSLA 160 */ { ST_INH, 1, 278 },
  1331. /* LSLB 161 */ { ST_INH, 1, 279 },
  1332. /* LSLD 162 */ { ST_INH, 1, 280 },
  1333. /* LSR 163 */ { ST_ACC, 2, 281 },
  1334. /* LSR 164 */ { ST_EXP, 1, 283 },
  1335. /* LSR 165 */ { ST_IND, 1, 284 },
  1336. /* LSRA 166 */ { ST_INH, 1, 285 },
  1337. /* LSRB 167 */ { ST_INH, 1, 286 },
  1338. /* LSRD 168 */ { ST_INH, 1, 287 },
  1339. /* MUL 169 */ { ST_INH, 1, 288 },
  1340. /* NEG 170 */ { ST_ACC, 2, 289 },
  1341. /* NEG 171 */ { ST_EXP, 1, 291 },
  1342. /* NEG 172 */ { ST_IND, 1, 292 },
  1343. /* NEGA 173 */ { ST_INH, 1, 293 },
  1344. /* NEGB 174 */ { ST_INH, 1, 294 },
  1345. /* NOP 175 */ { ST_INH, 1, 295 },
  1346. /* OIM 176 */ { ST_MEMIMM, 1, 296 },
  1347. /* OIM 177 */ { ST_MEMIMMIND, 1, 297 },
  1348. /* ORA 178 */ { ST_AEXP, 4, 298 },
  1349. /* ORA 179 */ { ST_AIMM, 2, 302 },
  1350. /* ORA 180 */ { ST_AIND, 2, 304 },
  1351. /* ORAA 181 */ { ST_EXP, 2, 306 },
  1352. /* ORAA 182 */ { ST_IMM, 1, 308 },
  1353. /* ORAA 183 */ { ST_IND, 1, 309 },
  1354. /* ORAB 184 */ { ST_EXP, 2, 310 },
  1355. /* ORAB 185 */ { ST_IMM, 1, 312 },
  1356. /* ORAB 186 */ { ST_IND, 1, 313 },
  1357. /* PSH 187 */ { ST_ACC, 2, 314 },
  1358. /* PSH 188 */ { ST_INDREG, 1, 316 },
  1359. /* PSHA 189 */ { ST_INH, 1, 317 },
  1360. /* PSHB 190 */ { ST_INH, 1, 318 },
  1361. /* PSHX 191 */ { ST_INH, 1, 319 },
  1362. /* PUL 192 */ { ST_ACC, 2, 320 },
  1363. /* PUL 193 */ { ST_INDREG, 1, 322 },
  1364. /* PULA 194 */ { ST_INH, 1, 323 },
  1365. /* PULB 195 */ { ST_INH, 1, 324 },
  1366. /* PULX 196 */ { ST_INH, 1, 325 },
  1367. /* ROL 197 */ { ST_ACC, 2, 326 },
  1368. /* ROL 198 */ { ST_EXP, 1, 328 },
  1369. /* ROL 199 */ { ST_IND, 1, 329 },
  1370. /* ROLA 200 */ { ST_INH, 1, 330 },
  1371. /* ROLB 201 */ { ST_INH, 1, 331 },
  1372. /* ROR 202 */ { ST_ACC, 2, 332 },
  1373. /* ROR 203 */ { ST_EXP, 1, 334 },
  1374. /* ROR 204 */ { ST_IND, 1, 335 },
  1375. /* RORA 205 */ { ST_INH, 1, 336 },
  1376. /* RORB 206 */ { ST_INH, 1, 337 },
  1377. /* RTI 207 */ { ST_INH, 1, 338 },
  1378. /* RTS 208 */ { ST_INH, 1, 339 },
  1379. /* SBA 209 */ { ST_INH, 1, 340 },
  1380. /* SBC 210 */ { ST_AEXP, 4, 341 },
  1381. /* SBC 211 */ { ST_AIMM, 2, 345 },
  1382. /* SBC 212 */ { ST_AIND, 2, 347 },
  1383. /* SBCA 213 */ { ST_EXP, 2, 349 },
  1384. /* SBCA 214 */ { ST_IMM, 1, 351 },
  1385. /* SBCA 215 */ { ST_IND, 1, 352 },
  1386. /* SBCB 216 */ { ST_EXP, 2, 353 },
  1387. /* SBCB 217 */ { ST_IMM, 1, 355 },
  1388. /* SBCB 218 */ { ST_IND, 1, 356 },
  1389. /* SEC 219 */ { ST_INH, 1, 357 },
  1390. /* SEI 220 */ { ST_INH, 1, 358 },
  1391. /* SEV 221 */ { ST_INH, 1, 359 },
  1392. /* SLP 222 */ { ST_INH, 1, 360 },
  1393. /* STA 223 */ { ST_AEXP, 4, 361 },
  1394. /* STA 224 */ { ST_AIND, 2, 365 },
  1395. /* STAA 225 */ { ST_EXP, 2, 367 },
  1396. /* STAA 226 */ { ST_IND, 1, 369 },
  1397. /* STAB 227 */ { ST_EXP, 2, 370 },
  1398. /* STAB 228 */ { ST_IND, 1, 372 },
  1399. /* STD 229 */ { ST_EXP, 2, 373 },
  1400. /* STD 230 */ { ST_IND, 1, 375 },
  1401. /* STS 231 */ { ST_EXP, 2, 376 },
  1402. /* STS 232 */ { ST_IND, 1, 378 },
  1403. /* STX 233 */ { ST_EXP, 2, 379 },
  1404. /* STX 234 */ { ST_IND, 1, 381 },
  1405. /* SUB 235 */ { ST_AEXP, 4, 382 },
  1406. /* SUB 236 */ { ST_AIMM, 2, 386 },
  1407. /* SUB 237 */ { ST_AIND, 2, 388 },
  1408. /* SUBA 238 */ { ST_EXP, 2, 390 },
  1409. /* SUBA 239 */ { ST_IMM, 1, 392 },
  1410. /* SUBA 240 */ { ST_IND, 1, 393 },
  1411. /* SUBB 241 */ { ST_EXP, 2, 394 },
  1412. /* SUBB 242 */ { ST_IMM, 1, 396 },
  1413. /* SUBB 243 */ { ST_IND, 1, 397 },
  1414. /* SUBD 244 */ { ST_EXP, 2, 398 },
  1415. /* SUBD 245 */ { ST_IMM, 1, 400 },
  1416. /* SUBD 246 */ { ST_IND, 1, 401 },
  1417. /* SWI 247 */ { ST_INH, 1, 402 },
  1418. /* TAB 248 */ { ST_INH, 1, 403 },
  1419. /* TAP 249 */ { ST_INH, 1, 404 },
  1420. /* TBA 250 */ { ST_INH, 1, 405 },
  1421. /* TIM 251 */ { ST_MEMIMM, 1, 406 },
  1422. /* TIM 252 */ { ST_MEMIMMIND, 1, 407 },
  1423. /* TPA 253 */ { ST_INH, 1, 408 },
  1424. /* TST 254 */ { ST_ACC, 2, 409 },
  1425. /* TST 255 */ { ST_EXP, 1, 411 },
  1426. /* TST 256 */ { ST_IND, 1, 412 },
  1427. /* TSTA 257 */ { ST_INH, 1, 413 },
  1428. /* TSTB 258 */ { ST_INH, 1, 414 },
  1429. /* TSX 259 */ { ST_INH, 1, 415 },
  1430. /* TXS 260 */ { ST_INH, 1, 416 },
  1431. /* WAI 261 */ { ST_INH, 1, 417 },
  1432. /* XGDX 262 */ { ST_INH, 1, 418 },
  1433.     { 0, 0, 0 } };
  1434.  
  1435. struct igel igtab[NUMDIFFOP+1]
  1436.     = {
  1437. /* invalid 0 */   { 0 , 0, 
  1438.         "[Xnullentry" },
  1439. /* invalid 1 */   { 0 , 0, 
  1440.         "[Xinvalid opcode" },
  1441. /* ABA 2 */   { 0 , 0, 
  1442.         "1b;" },
  1443. /* ABX 3 */   { 0 , 0, 
  1444.         "3a;" },
  1445. /* ADC 4 */   { ACCREG+ADDR , REGA+DIRECT, 
  1446.         "99;[1=];" },
  1447. /* ADC 5 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1448.         "b9;[1=]x" },
  1449. /* ADC 6 */   { ACCREG+ADDR , REGB+DIRECT, 
  1450.         "d9;[1=];" },
  1451. /* ADC 7 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1452.         "f9;[1=]x" },
  1453. /* ADC 8 */   { ACCREG , REGA, 
  1454.         "89;[1=];" },
  1455. /* ADC 9 */   { ACCREG , REGB, 
  1456.         "c9;[1=];" },
  1457. /* ADC 10 */   { ACCREG , REGA, 
  1458.         "a9;[1=];" },
  1459. /* ADC 11 */   { ACCREG , REGB, 
  1460.         "e9;[1=];" },
  1461. /* ADCA 12 */   { ADDR , DIRECT, 
  1462.         "99;[1=];" },
  1463. /* ADCA 13 */   { ADDR , EXTENDED, 
  1464.         "b9;[1=]x" },
  1465. /* ADCA 14 */   { 0 , 0, 
  1466.         "89;[1=];" },
  1467. /* ADCA 15 */   { 0 , 0, 
  1468.         "a9;[1=];" },
  1469. /* ADCB 16 */   { ADDR , DIRECT, 
  1470.         "d9;[1=];" },
  1471. /* ADCB 17 */   { ADDR , EXTENDED, 
  1472.         "f9;[1=]x" },
  1473. /* ADCB 18 */   { 0 , 0, 
  1474.         "c9;[1=];" },
  1475. /* ADCB 19 */   { 0 , 0, 
  1476.         "e9;[1=];" },
  1477. /* ADD 20 */   { ACCREG+ADDR , REGA+DIRECT, 
  1478.         "9b;[1=];" },
  1479. /* ADD 21 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1480.         "bb;[1=]x" },
  1481. /* ADD 22 */   { ACCREG+ADDR , REGB+DIRECT, 
  1482.         "db;[1=];" },
  1483. /* ADD 23 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1484.         "fb;[1=]x" },
  1485. /* ADD 24 */   { ACCREG , REGA, 
  1486.         "8b;[1=];" },
  1487. /* ADD 25 */   { ACCREG , REGB, 
  1488.         "cb;[1=];" },
  1489. /* ADD 26 */   { ACCREG , REGA, 
  1490.         "ab;[1=];" },
  1491. /* ADD 27 */   { ACCREG , REGB, 
  1492.         "eb;[1=];" },
  1493. /* ADDA 28 */   { ADDR , DIRECT, 
  1494.         "9b;[1=];" },
  1495. /* ADDA 29 */   { ADDR , EXTENDED, 
  1496.         "bb;[1=]x" },
  1497. /* ADDA 30 */   { 0 , 0, 
  1498.         "8b;[1=];" },
  1499. /* ADDA 31 */   { 0 , 0, 
  1500.         "ab;[1=];" },
  1501. /* ADDB 32 */   { ADDR , DIRECT, 
  1502.         "db;[1=];" },
  1503. /* ADDB 33 */   { ADDR , EXTENDED, 
  1504.         "fb;[1=]x" },
  1505. /* ADDB 34 */   { 0 , 0, 
  1506.         "cb;[1=];" },
  1507. /* ADDB 35 */   { 0 , 0, 
  1508.         "eb;[1=];" },
  1509. /* ADDD 36 */   { ADDR , DIRECT, 
  1510.         "d3;[1=];" },
  1511. /* ADDD 37 */   { ADDR , EXTENDED, 
  1512.         "f3;[1=]x" },
  1513. /* ADDD 38 */   { 0 , 0, 
  1514.         "c3;[1=]x" },
  1515. /* ADDD 39 */   { 0 , 0, 
  1516.         "e3;[1=];" },
  1517. /* AIM 40 */   { 0 , 0, 
  1518.         "71;[1=];[2=];" },
  1519. /* AIM 41 */   { 0 , 0, 
  1520.         "61;[1=];[2=];" },
  1521. /* AND 42 */   { ACCREG+ADDR , REGA+DIRECT, 
  1522.         "94;[1=];" },
  1523. /* AND 43 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1524.         "b4;[1=]x" },
  1525. /* AND 44 */   { ACCREG+ADDR , REGB+DIRECT, 
  1526.         "d4;[1=];" },
  1527. /* AND 45 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1528.         "f4;[1=]x" },
  1529. /* AND 46 */   { ACCREG , REGA, 
  1530.         "84;[1=];" },
  1531. /* AND 47 */   { ACCREG , REGB, 
  1532.         "c4;[1=];" },
  1533. /* AND 48 */   { ACCREG , REGA, 
  1534.         "a4;[1=];" },
  1535. /* AND 49 */   { ACCREG , REGB, 
  1536.         "e4;[1=];" },
  1537. /* ANDA 50 */   { ADDR , DIRECT, 
  1538.         "94;[1=];" },
  1539. /* ANDA 51 */   { ADDR , EXTENDED, 
  1540.         "b4;[1=]x" },
  1541. /* ANDA 52 */   { 0 , 0, 
  1542.         "84;[1=];" },
  1543. /* ANDA 53 */   { 0 , 0, 
  1544.         "a4;[1=];" },
  1545. /* ANDB 54 */   { ADDR , DIRECT, 
  1546.         "d4;[1=];" },
  1547. /* ANDB 55 */   { ADDR , EXTENDED, 
  1548.         "f4;[1=]x" },
  1549. /* ANDB 56 */   { 0 , 0, 
  1550.         "c4;[1=];" },
  1551. /* ANDB 57 */   { 0 , 0, 
  1552.         "e4;[1=];" },
  1553. /* ASL 58 */   { ACCREG , REGA, 
  1554.         "48;" },
  1555. /* ASL 59 */   { ACCREG , REGB, 
  1556.         "58;" },
  1557. /* ASL 60 */   { 0 , 0, 
  1558.         "78;[1=]x" },
  1559. /* ASL 61 */   { 0 , 0, 
  1560.         "68;[1=];" },
  1561. /* ASLA 62 */   { 0 , 0, 
  1562.         "48;" },
  1563. /* ASLB 63 */   { 0 , 0, 
  1564.         "58;" },
  1565. /* ASLD 64 */   { 0 , 0, 
  1566.         "05;" },
  1567. /* ASR 65 */   { ACCREG , REGA, 
  1568.         "47;" },
  1569. /* ASR 66 */   { ACCREG , REGB, 
  1570.         "57;" },
  1571. /* ASR 67 */   { 0 , 0, 
  1572.         "77;[1=]x" },
  1573. /* ASR 68 */   { 0 , 0, 
  1574.         "67;[1=];" },
  1575. /* ASRA 69 */   { 0 , 0, 
  1576.         "47;" },
  1577. /* ASRB 70 */   { 0 , 0, 
  1578.         "57;" },
  1579. /* BCC 71 */   { 0 , 0, 
  1580.         "24;[1=].P.2+-r" },
  1581. /* BCLR 72 */   { BITNUMB , BIT0, 
  1582.         "71;fe;[2=];" },
  1583. /* BCLR 73 */   { BITNUMB , BIT1, 
  1584.         "71;fd;[2=];" },
  1585. /* BCLR 74 */   { BITNUMB , BIT2, 
  1586.         "71;fb;[2=];" },
  1587. /* BCLR 75 */   { BITNUMB , BIT3, 
  1588.         "71;f7;[2=];" },
  1589. /* BCLR 76 */   { BITNUMB , BIT4, 
  1590.         "71;ef;[2=];" },
  1591. /* BCLR 77 */   { BITNUMB , BIT5, 
  1592.         "71;df;[2=];" },
  1593. /* BCLR 78 */   { BITNUMB , BIT6, 
  1594.         "71;bf;[2=];" },
  1595. /* BCLR 79 */   { BITNUMB , BIT7, 
  1596.         "71;7f;[2=];" },
  1597. /* BCLR 80 */   { BITNUMB , BIT0, 
  1598.         "61;fe;[2=];" },
  1599. /* BCLR 81 */   { BITNUMB , BIT1, 
  1600.         "61;fd;[2=];" },
  1601. /* BCLR 82 */   { BITNUMB , BIT2, 
  1602.         "61;fb;[2=];" },
  1603. /* BCLR 83 */   { BITNUMB , BIT3, 
  1604.         "61;f7;[2=];" },
  1605. /* BCLR 84 */   { BITNUMB , BIT4, 
  1606.         "61;ef;[2=];" },
  1607. /* BCLR 85 */   { BITNUMB , BIT5, 
  1608.         "61;df;[2=];" },
  1609. /* BCLR 86 */   { BITNUMB , BIT6, 
  1610.         "61;bf;[2=];" },
  1611. /* BCLR 87 */   { BITNUMB , BIT7, 
  1612.         "61;7f;[2=];" },
  1613. /* BCS 88 */   { 0 , 0, 
  1614.         "25;[1=].P.2+-r" },
  1615. /* BEQ 89 */   { 0 , 0, 
  1616.         "27;[1=].P.2+-r" },
  1617. /* BGE 90 */   { 0 , 0, 
  1618.         "2c;[1=].P.2+-r" },
  1619. /* BGT 91 */   { 0 , 0, 
  1620.         "2e;[1=].P.2+-r" },
  1621. /* BHI 92 */   { 0 , 0, 
  1622.         "22;[1=].P.2+-r" },
  1623. /* BHS 93 */   { 0 , 0, 
  1624.         "24;[1=].P.2+-r" },
  1625. /* BIT 94 */   { ACCREG+ADDR , REGA+DIRECT, 
  1626.         "95;[1=];" },
  1627. /* BIT 95 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1628.         "b5;[1=]x" },
  1629. /* BIT 96 */   { ACCREG+ADDR , REGB+DIRECT, 
  1630.         "d5;[1=];" },
  1631. /* BIT 97 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1632.         "f5;[1=]x" },
  1633. /* BIT 98 */   { ACCREG , REGA, 
  1634.         "85;[1=];" },
  1635. /* BIT 99 */   { ACCREG , REGB, 
  1636.         "c5;[1=];" },
  1637. /* BIT 100 */   { ACCREG , REGA, 
  1638.         "a5;[1=];" },
  1639. /* BIT 101 */   { ACCREG , REGB, 
  1640.         "e5;[1=];" },
  1641. /* BITA 102 */   { ADDR , DIRECT, 
  1642.         "95;[1=];" },
  1643. /* BITA 103 */   { ADDR , EXTENDED, 
  1644.         "b5;[1=]x" },
  1645. /* BITA 104 */   { 0 , 0, 
  1646.         "85;[1=];" },
  1647. /* BITA 105 */   { 0 , 0, 
  1648.         "a5;[1=];" },
  1649. /* BITB 106 */   { ADDR , DIRECT, 
  1650.         "d5;[1=];" },
  1651. /* BITB 107 */   { ADDR , EXTENDED, 
  1652.         "f5;[1=]x" },
  1653. /* BITB 108 */   { 0 , 0, 
  1654.         "c5;[1=];" },
  1655. /* BITB 109 */   { 0 , 0, 
  1656.         "e5;[1=];" },
  1657. /* BLE 110 */   { 0 , 0, 
  1658.         "2f;[1=].P.2+-r" },
  1659. /* BLO 111 */   { 0 , 0, 
  1660.         "25;[1=].P.2+-r" },
  1661. /* BLS 112 */   { 0 , 0, 
  1662.         "23;[1=].P.2+-r" },
  1663. /* BLT 113 */   { 0 , 0, 
  1664.         "2d;[1=].P.2+-r" },
  1665. /* BMI 114 */   { 0 , 0, 
  1666.         "2b;[1=].P.2+-r" },
  1667. /* BNE 115 */   { 0 , 0, 
  1668.         "26;[1=].P.2+-r" },
  1669. /* BPL 116 */   { 0 , 0, 
  1670.         "2a;[1=].P.2+-r" },
  1671. /* BRA 117 */   { 0 , 0, 
  1672.         "20;[1=].P.2+-r" },
  1673. /* BRN 118 */   { 0 , 0, 
  1674.         "21;[1=].P.2+-r" },
  1675. /* BSET 119 */   { BITNUMB , BIT0, 
  1676.         "72;01;[2=];" },
  1677. /* BSET 120 */   { BITNUMB , BIT1, 
  1678.         "72;02;[2=];" },
  1679. /* BSET 121 */   { BITNUMB , BIT2, 
  1680.         "72;04;[2=];" },
  1681. /* BSET 122 */   { BITNUMB , BIT3, 
  1682.         "72;08;[2=];" },
  1683. /* BSET 123 */   { BITNUMB , BIT4, 
  1684.         "72;10;[2=];" },
  1685. /* BSET 124 */   { BITNUMB , BIT5, 
  1686.         "72;20;[2=];" },
  1687. /* BSET 125 */   { BITNUMB , BIT6, 
  1688.         "72;40;[2=];" },
  1689. /* BSET 126 */   { BITNUMB , BIT7, 
  1690.         "72;80;[2=];" },
  1691. /* BSET 127 */   { BITNUMB , BIT0, 
  1692.         "62;01;[2=];" },
  1693. /* BSET 128 */   { BITNUMB , BIT1, 
  1694.         "62;02;[2=];" },
  1695. /* BSET 129 */   { BITNUMB , BIT2, 
  1696.         "62;04;[2=];" },
  1697. /* BSET 130 */   { BITNUMB , BIT3, 
  1698.         "62;08;[2=];" },
  1699. /* BSET 131 */   { BITNUMB , BIT4, 
  1700.         "62;10;[2=];" },
  1701. /* BSET 132 */   { BITNUMB , BIT5, 
  1702.         "62;20;[2=];" },
  1703. /* BSET 133 */   { BITNUMB , BIT6, 
  1704.         "62;40;[2=];" },
  1705. /* BSET 134 */   { BITNUMB , BIT7, 
  1706.         "62;80;[2=];" },
  1707. /* BSR 135 */   { 0 , 0, 
  1708.         "8d;[1=].P.2+-r" },
  1709. /* BTGL 136 */   { BITNUMB , BIT0, 
  1710.         "75;01;[2=];" },
  1711. /* BTGL 137 */   { BITNUMB , BIT1, 
  1712.         "75;02;[2=];" },
  1713. /* BTGL 138 */   { BITNUMB , BIT2, 
  1714.         "75;04;[2=];" },
  1715. /* BTGL 139 */   { BITNUMB , BIT3, 
  1716.         "75;08;[2=];" },
  1717. /* BTGL 140 */   { BITNUMB , BIT4, 
  1718.         "75;10;[2=];" },
  1719. /* BTGL 141 */   { BITNUMB , BIT5, 
  1720.         "75;20;[2=];" },
  1721. /* BTGL 142 */   { BITNUMB , BIT6, 
  1722.         "75;40;[2=];" },
  1723. /* BTGL 143 */   { BITNUMB , BIT7, 
  1724.         "75;80;[2=];" },
  1725. /* BTGL 144 */   { BITNUMB , BIT0, 
  1726.         "65;01;[2=];" },
  1727. /* BTGL 145 */   { BITNUMB , BIT1, 
  1728.         "65;02;[2=];" },
  1729. /* BTGL 146 */   { BITNUMB , BIT2, 
  1730.         "65;04;[2=];" },
  1731. /* BTGL 147 */   { BITNUMB , BIT3, 
  1732.         "65;08;[2=];" },
  1733. /* BTGL 148 */   { BITNUMB , BIT4, 
  1734.         "65;10;[2=];" },
  1735. /* BTGL 149 */   { BITNUMB , BIT5, 
  1736.         "65;20;[2=];" },
  1737. /* BTGL 150 */   { BITNUMB , BIT6, 
  1738.         "65;40;[2=];" },
  1739. /* BTGL 151 */   { BITNUMB , BIT7, 
  1740.         "65;80;[2=];" },
  1741. /* BTST 152 */   { BITNUMB , BIT0, 
  1742.         "7b;01;[2=];" },
  1743. /* BTST 153 */   { BITNUMB , BIT1, 
  1744.         "7b;02;[2=];" },
  1745. /* BTST 154 */   { BITNUMB , BIT2, 
  1746.         "7b;04;[2=];" },
  1747. /* BTST 155 */   { BITNUMB , BIT3, 
  1748.         "7b;08;[2=];" },
  1749. /* BTST 156 */   { BITNUMB , BIT4, 
  1750.         "7b;10;[2=];" },
  1751. /* BTST 157 */   { BITNUMB , BIT5, 
  1752.         "7b;20;[2=];" },
  1753. /* BTST 158 */   { BITNUMB , BIT6, 
  1754.         "7b;40;[2=];" },
  1755. /* BTST 159 */   { BITNUMB , BIT7, 
  1756.         "7b;80;[2=];" },
  1757. /* BTST 160 */   { BITNUMB , BIT0, 
  1758.         "6b;01;[2=];" },
  1759. /* BTST 161 */   { BITNUMB , BIT1, 
  1760.         "6b;02;[2=];" },
  1761. /* BTST 162 */   { BITNUMB , BIT2, 
  1762.         "6b;04;[2=];" },
  1763. /* BTST 163 */   { BITNUMB , BIT3, 
  1764.         "6b;08;[2=];" },
  1765. /* BTST 164 */   { BITNUMB , BIT4, 
  1766.         "6b;10;[2=];" },
  1767. /* BTST 165 */   { BITNUMB , BIT5, 
  1768.         "6b;20;[2=];" },
  1769. /* BTST 166 */   { BITNUMB , BIT6, 
  1770.         "6b;40;[2=];" },
  1771. /* BTST 167 */   { BITNUMB , BIT7, 
  1772.         "6b;80;[2=];" },
  1773. /* BVC 168 */   { 0 , 0, 
  1774.         "28;[1=].P.2+-r" },
  1775. /* BVS 169 */   { 0 , 0, 
  1776.         "29;[1=].P.2+-r" },
  1777. /* CBA 170 */   { 0 , 0, 
  1778.         "11;" },
  1779. /* CLC 171 */   { 0 , 0, 
  1780.         "0c;" },
  1781. /* CLI 172 */   { 0 , 0, 
  1782.         "0e;" },
  1783. /* CLR 173 */   { ACCREG , REGA, 
  1784.         "4f;" },
  1785. /* CLR 174 */   { ACCREG , REGB, 
  1786.         "5f;" },
  1787. /* CLR 175 */   { 0 , 0, 
  1788.         "7f;[1=]x" },
  1789. /* CLR 176 */   { 0 , 0, 
  1790.         "6f;[1=];" },
  1791. /* CLRA 177 */   { 0 , 0, 
  1792.         "4f;" },
  1793. /* CLRB 178 */   { 0 , 0, 
  1794.         "5f;" },
  1795. /* CLV 179 */   { 0 , 0, 
  1796.         "0a;" },
  1797. /* CMP 180 */   { ACCREG+ADDR , REGA+DIRECT, 
  1798.         "91;[1=];" },
  1799. /* CMP 181 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1800.         "b1;[1=]x" },
  1801. /* CMP 182 */   { ACCREG+ADDR , REGB+DIRECT, 
  1802.         "d1;[1=];" },
  1803. /* CMP 183 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1804.         "f1;[1=]x" },
  1805. /* CMP 184 */   { ACCREG , REGA, 
  1806.         "81;[1=];" },
  1807. /* CMP 185 */   { ACCREG , REGB, 
  1808.         "c1;[1=];" },
  1809. /* CMP 186 */   { ACCREG , REGA, 
  1810.         "a1;[1=];" },
  1811. /* CMP 187 */   { ACCREG , REGB, 
  1812.         "e1;[1=];" },
  1813. /* CMPA 188 */   { ADDR , DIRECT, 
  1814.         "91;[1=];" },
  1815. /* CMPA 189 */   { ADDR , EXTENDED, 
  1816.         "b1;[1=]x" },
  1817. /* CMPA 190 */   { 0 , 0, 
  1818.         "81;[1=];" },
  1819. /* CMPA 191 */   { 0 , 0, 
  1820.         "a1;[1=];" },
  1821. /* CMPB 192 */   { ADDR , DIRECT, 
  1822.         "d1;[1=];" },
  1823. /* CMPB 193 */   { ADDR , EXTENDED, 
  1824.         "f1;[1=]x" },
  1825. /* CMPB 194 */   { 0 , 0, 
  1826.         "c1;[1=];" },
  1827. /* CMPB 195 */   { 0 , 0, 
  1828.         "e1;[1=];" },
  1829. /* COM 196 */   { ACCREG , REGA, 
  1830.         "43;" },
  1831. /* COM 197 */   { ACCREG , REGB, 
  1832.         "53;" },
  1833. /* COM 198 */   { 0 , 0, 
  1834.         "73;[1=]x" },
  1835. /* COM 199 */   { 0 , 0, 
  1836.         "63;[1=];" },
  1837. /* COMA 200 */   { 0 , 0, 
  1838.         "43;" },
  1839. /* COMB 201 */   { 0 , 0, 
  1840.         "53;" },
  1841. /* CPX 202 */   { ADDR , DIRECT, 
  1842.         "9c;[1=];" },
  1843. /* CPX 203 */   { ADDR , EXTENDED, 
  1844.         "bc;[1=]x" },
  1845. /* CPX 204 */   { 0 , 0, 
  1846.         "8c;[1=]x" },
  1847. /* CPX 205 */   { 0 , 0, 
  1848.         "ac;[1=];" },
  1849. /* DAA 206 */   { 0 , 0, 
  1850.         "19;" },
  1851. /* DEC 207 */   { ACCREG , REGA, 
  1852.         "4a;" },
  1853. /* DEC 208 */   { ACCREG , REGB, 
  1854.         "5a;" },
  1855. /* DEC 209 */   { 0 , 0, 
  1856.         "7a;[1=]x" },
  1857. /* DEC 210 */   { 0 , 0, 
  1858.         "6a;[1=];" },
  1859. /* DECA 211 */   { 0 , 0, 
  1860.         "4a;" },
  1861. /* DECB 212 */   { 0 , 0, 
  1862.         "5a;" },
  1863. /* DES 213 */   { 0 , 0, 
  1864.         "34;" },
  1865. /* DEX 214 */   { 0 , 0, 
  1866.         "09;" },
  1867. /* EIM 215 */   { 0 , 0, 
  1868.         "75;[1=];[2=];" },
  1869. /* EIM 216 */   { 0 , 0, 
  1870.         "65;[1=];[2=];" },
  1871. /* EOR 217 */   { ACCREG+ADDR , REGA+DIRECT, 
  1872.         "98;[1=];" },
  1873. /* EOR 218 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1874.         "b8;[1=]x" },
  1875. /* EOR 219 */   { ACCREG+ADDR , REGB+DIRECT, 
  1876.         "d8;[1=];" },
  1877. /* EOR 220 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1878.         "f8;[1=]x" },
  1879. /* EOR 221 */   { ACCREG , REGA, 
  1880.         "88;[1=];" },
  1881. /* EOR 222 */   { ACCREG , REGB, 
  1882.         "c8;[1=];" },
  1883. /* EOR 223 */   { ACCREG , REGA, 
  1884.         "a8;[1=];" },
  1885. /* EOR 224 */   { ACCREG , REGB, 
  1886.         "e8;[1=];" },
  1887. /* EORA 225 */   { ADDR , DIRECT, 
  1888.         "98;[1=];" },
  1889. /* EORA 226 */   { ADDR , EXTENDED, 
  1890.         "b8;[1=]x" },
  1891. /* EORA 227 */   { 0 , 0, 
  1892.         "88;[1=];" },
  1893. /* EORA 228 */   { 0 , 0, 
  1894.         "a8;[1=];" },
  1895. /* EORB 229 */   { ADDR , DIRECT, 
  1896.         "d8;[1=];" },
  1897. /* EORB 230 */   { ADDR , EXTENDED, 
  1898.         "f8;[1=]x" },
  1899. /* EORB 231 */   { 0 , 0, 
  1900.         "c8;[1=];" },
  1901. /* EORB 232 */   { 0 , 0, 
  1902.         "e8;[1=];" },
  1903. /* INC 233 */   { ACCREG , REGA, 
  1904.         "4c;" },
  1905. /* INC 234 */   { ACCREG , REGB, 
  1906.         "5c;" },
  1907. /* INC 235 */   { 0 , 0, 
  1908.         "7c;[1=]x" },
  1909. /* INC 236 */   { 0 , 0, 
  1910.         "6c;[1=];" },
  1911. /* INCA 237 */   { 0 , 0, 
  1912.         "4c;" },
  1913. /* INCB 238 */   { 0 , 0, 
  1914.         "5c;" },
  1915. /* INS 239 */   { 0 , 0, 
  1916.         "31;" },
  1917. /* INX 240 */   { 0 , 0, 
  1918.         "08;" },
  1919. /* JMP 241 */   { 0 , 0, 
  1920.         "7e;[1=]x" },
  1921. /* JMP 242 */   { 0 , 0, 
  1922.         "6e;[1=];" },
  1923. /* JSR 243 */   { ADDR , DIRECT, 
  1924.         "9d;[1=];" },
  1925. /* JSR 244 */   { ADDR , EXTENDED, 
  1926.         "bd;[1=]x" },
  1927. /* JSR 245 */   { 0 , 0, 
  1928.         "ad;[1=];" },
  1929. /* LDA 246 */   { ACCREG+ADDR , REGA+DIRECT, 
  1930.         "96;[1=];" },
  1931. /* LDA 247 */   { ACCREG+ADDR , REGA+EXTENDED, 
  1932.         "b6;[1=]x" },
  1933. /* LDA 248 */   { ACCREG+ADDR , REGB+DIRECT, 
  1934.         "d6;[1=];" },
  1935. /* LDA 249 */   { ACCREG+ADDR , REGB+EXTENDED, 
  1936.         "f6;[1=]x" },
  1937. /* LDA 250 */   { ACCREG , REGA, 
  1938.         "86;[1=];" },
  1939. /* LDA 251 */   { ACCREG , REGB, 
  1940.         "c6;[1=];" },
  1941. /* LDA 252 */   { ACCREG , REGA, 
  1942.         "a6;[1=];" },
  1943. /* LDA 253 */   { ACCREG , REGB, 
  1944.         "e6;[1=];" },
  1945. /* LDAA 254 */   { ADDR , DIRECT, 
  1946.         "96;[1=];" },
  1947. /* LDAA 255 */   { ADDR , EXTENDED, 
  1948.         "b6;[1=]x" },
  1949. /* LDAA 256 */   { 0 , 0, 
  1950.         "86;[1=];" },
  1951. /* LDAA 257 */   { 0 , 0, 
  1952.         "a6;[1=];" },
  1953. /* LDAB 258 */   { ADDR , DIRECT, 
  1954.         "d6;[1=];" },
  1955. /* LDAB 259 */   { ADDR , EXTENDED, 
  1956.         "f6;[1=]x" },
  1957. /* LDAB 260 */   { 0 , 0, 
  1958.         "c6;[1=];" },
  1959. /* LDAB 261 */   { 0 , 0, 
  1960.         "e6;[1=];" },
  1961. /* LDD 262 */   { ADDR , DIRECT, 
  1962.         "dc;[1=];" },
  1963. /* LDD 263 */   { ADDR , EXTENDED, 
  1964.         "fc;[1=]x" },
  1965. /* LDD 264 */   { 0 , 0, 
  1966.         "cc;[1=]x" },
  1967. /* LDD 265 */   { 0 , 0, 
  1968.         "ec;[1=];" },
  1969. /* LDS 266 */   { ADDR , DIRECT, 
  1970.         "9e;[1=];" },
  1971. /* LDS 267 */   { ADDR , EXTENDED, 
  1972.         "be;[1=]x" },
  1973. /* LDS 268 */   { 0 , 0, 
  1974.         "8e;[1=]x" },
  1975. /* LDS 269 */   { 0 , 0, 
  1976.         "ae;[1=];" },
  1977. /* LDX 270 */   { ADDR , DIRECT, 
  1978.         "de;[1=];" },
  1979. /* LDX 271 */   { ADDR , EXTENDED, 
  1980.         "fe;[1=]x" },
  1981. /* LDX 272 */   { 0 , 0, 
  1982.         "ce;[1=]x" },
  1983. /* LDX 273 */   { 0 , 0, 
  1984.         "ee;[1=];" },
  1985. /* LSL 274 */   { ACCREG , REGA, 
  1986.         "48;" },
  1987. /* LSL 275 */   { ACCREG , REGB, 
  1988.         "58;" },
  1989. /* LSL 276 */   { 0 , 0, 
  1990.         "78;[1=]x" },
  1991. /* LSL 277 */   { 0 , 0, 
  1992.         "68;[1=];" },
  1993. /* LSLA 278 */   { 0 , 0, 
  1994.         "48;" },
  1995. /* LSLB 279 */   { 0 , 0, 
  1996.         "58;" },
  1997. /* LSLD 280 */   { 0 , 0, 
  1998.         "05;" },
  1999. /* LSR 281 */   { ACCREG , REGA, 
  2000.         "44;" },
  2001. /* LSR 282 */   { ACCREG , REGB, 
  2002.         "54;" },
  2003. /* LSR 283 */   { 0 , 0, 
  2004.         "74;[1=]x" },
  2005. /* LSR 284 */   { 0 , 0, 
  2006.         "64;[1=];" },
  2007. /* LSRA 285 */   { 0 , 0, 
  2008.         "44;" },
  2009. /* LSRB 286 */   { 0 , 0, 
  2010.         "54;" },
  2011. /* LSRD 287 */   { 0 , 0, 
  2012.         "04;" },
  2013. /* MUL 288 */   { 0 , 0, 
  2014.         "3d;" },
  2015. /* NEG 289 */   { ACCREG , REGA, 
  2016.         "40;" },
  2017. /* NEG 290 */   { ACCREG , REGB, 
  2018.         "50;" },
  2019. /* NEG 291 */   { 0 , 0, 
  2020.         "70;[1=]x" },
  2021. /* NEG 292 */   { 0 , 0, 
  2022.         "60;[1=];" },
  2023. /* NEGA 293 */   { 0 , 0, 
  2024.         "40;" },
  2025. /* NEGB 294 */   { 0 , 0, 
  2026.         "50;" },
  2027. /* NOP 295 */   { 0 , 0, 
  2028.         "01;" },
  2029. /* OIM 296 */   { 0 , 0, 
  2030.         "72;[1=];[2=];" },
  2031. /* OIM 297 */   { 0 , 0, 
  2032.         "62;[1=];[2=];" },
  2033. /* ORA 298 */   { ACCREG+ADDR , REGA+DIRECT, 
  2034.         "9a;[1=];" },
  2035. /* ORA 299 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2036.         "ba;[1=]x" },
  2037. /* ORA 300 */   { ACCREG+ADDR , REGB+DIRECT, 
  2038.         "da;[1=];" },
  2039. /* ORA 301 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2040.         "fa;[1=]x" },
  2041. /* ORA 302 */   { ACCREG , REGA, 
  2042.         "8a;[1=];" },
  2043. /* ORA 303 */   { ACCREG , REGB, 
  2044.         "ca;[1=];" },
  2045. /* ORA 304 */   { ACCREG , REGA, 
  2046.         "aa;[1=];" },
  2047. /* ORA 305 */   { ACCREG , REGB, 
  2048.         "ea;[1=];" },
  2049. /* ORAA 306 */   { ADDR , DIRECT, 
  2050.         "9a;[1=];" },
  2051. /* ORAA 307 */   { ADDR , EXTENDED, 
  2052.         "ba;[1=]x" },
  2053. /* ORAA 308 */   { 0 , 0, 
  2054.         "8a;[1=];" },
  2055. /* ORAA 309 */   { 0 , 0, 
  2056.         "aa;[1=];" },
  2057. /* ORAB 310 */   { ADDR , DIRECT, 
  2058.         "da;[1=];" },
  2059. /* ORAB 311 */   { ADDR , EXTENDED, 
  2060.         "fa;[1=]x" },
  2061. /* ORAB 312 */   { 0 , 0, 
  2062.         "ca;[1=];" },
  2063. /* ORAB 313 */   { 0 , 0, 
  2064.         "ea;[1=];" },
  2065. /* PSH 314 */   { ACCREG , REGA, 
  2066.         "36;" },
  2067. /* PSH 315 */   { ACCREG , REGB, 
  2068.         "37;" },
  2069. /* PSH 316 */   { 0 , 0, 
  2070.         "3c;" },
  2071. /* PSHA 317 */   { 0 , 0, 
  2072.         "36;" },
  2073. /* PSHB 318 */   { 0 , 0, 
  2074.         "37;" },
  2075. /* PSHX 319 */   { 0 , 0, 
  2076.         "3c;" },
  2077. /* PUL 320 */   { ACCREG , REGA, 
  2078.         "32;" },
  2079. /* PUL 321 */   { ACCREG , REGB, 
  2080.         "33;" },
  2081. /* PUL 322 */   { 0 , 0, 
  2082.         "38;" },
  2083. /* PULA 323 */   { 0 , 0, 
  2084.         "32;" },
  2085. /* PULB 324 */   { 0 , 0, 
  2086.         "33;" },
  2087. /* PULX 325 */   { 0 , 0, 
  2088.         "38;" },
  2089. /* ROL 326 */   { ACCREG , REGA, 
  2090.         "49;" },
  2091. /* ROL 327 */   { ACCREG , REGB, 
  2092.         "59;" },
  2093. /* ROL 328 */   { 0 , 0, 
  2094.         "79;[1=]x" },
  2095. /* ROL 329 */   { 0 , 0, 
  2096.         "69;[1=];" },
  2097. /* ROLA 330 */   { 0 , 0, 
  2098.         "49;" },
  2099. /* ROLB 331 */   { 0 , 0, 
  2100.         "59;" },
  2101. /* ROR 332 */   { ACCREG , REGA, 
  2102.         "46;" },
  2103. /* ROR 333 */   { ACCREG , REGB, 
  2104.         "56;" },
  2105. /* ROR 334 */   { 0 , 0, 
  2106.         "76;[1=]x" },
  2107. /* ROR 335 */   { 0 , 0, 
  2108.         "66;[1=];" },
  2109. /* RORA 336 */   { 0 , 0, 
  2110.         "46;" },
  2111. /* RORB 337 */   { 0 , 0, 
  2112.         "56;" },
  2113. /* RTI 338 */   { 0 , 0, 
  2114.         "3b;" },
  2115. /* RTS 339 */   { 0 , 0, 
  2116.         "39;" },
  2117. /* SBA 340 */   { 0 , 0, 
  2118.         "10;" },
  2119. /* SBC 341 */   { ACCREG+ADDR , REGA+DIRECT, 
  2120.         "92;[1=];" },
  2121. /* SBC 342 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2122.         "b2;[1=]x" },
  2123. /* SBC 343 */   { ACCREG+ADDR , REGB+DIRECT, 
  2124.         "d2;[1=];" },
  2125. /* SBC 344 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2126.         "f2;[1=]x" },
  2127. /* SBC 345 */   { ACCREG , REGA, 
  2128.         "82;[1=];" },
  2129. /* SBC 346 */   { ACCREG , REGB, 
  2130.         "c2;[1=];" },
  2131. /* SBC 347 */   { ACCREG , REGA, 
  2132.         "a2;[1=];" },
  2133. /* SBC 348 */   { ACCREG , REGB, 
  2134.         "e2;[1=];" },
  2135. /* SBCA 349 */   { ADDR , DIRECT, 
  2136.         "92;[1=];" },
  2137. /* SBCA 350 */   { ADDR , EXTENDED, 
  2138.         "b2;[1=]x" },
  2139. /* SBCA 351 */   { 0 , 0, 
  2140.         "82;[1=];" },
  2141. /* SBCA 352 */   { 0 , 0, 
  2142.         "a2;[1=];" },
  2143. /* SBCB 353 */   { ADDR , DIRECT, 
  2144.         "d2;[1=];" },
  2145. /* SBCB 354 */   { ADDR , EXTENDED, 
  2146.         "f2;[1=]x" },
  2147. /* SBCB 355 */   { 0 , 0, 
  2148.         "c2;[1=];" },
  2149. /* SBCB 356 */   { 0 , 0, 
  2150.         "e2;[1=];" },
  2151. /* SEC 357 */   { 0 , 0, 
  2152.         "0d;" },
  2153. /* SEI 358 */   { 0 , 0, 
  2154.         "0f;" },
  2155. /* SEV 359 */   { 0 , 0, 
  2156.         "0b;" },
  2157. /* SLP 360 */   { 0 , 0, 
  2158.         "1a;" },
  2159. /* STA 361 */   { ACCREG+ADDR , REGA+DIRECT, 
  2160.         "97;[1=];" },
  2161. /* STA 362 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2162.         "b7;[1=]x" },
  2163. /* STA 363 */   { ACCREG+ADDR , REGB+DIRECT, 
  2164.         "d7;[1=];" },
  2165. /* STA 364 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2166.         "f7;[1=]x" },
  2167. /* STA 365 */   { ACCREG , REGA, 
  2168.         "a7;[1=];" },
  2169. /* STA 366 */   { ACCREG , REGB, 
  2170.         "e7;[1=];" },
  2171. /* STAA 367 */   { ADDR , DIRECT, 
  2172.         "97;[1=];" },
  2173. /* STAA 368 */   { ADDR , EXTENDED, 
  2174.         "b7;[1=]x" },
  2175. /* STAA 369 */   { 0 , 0, 
  2176.         "a7;[1=];" },
  2177. /* STAB 370 */   { ADDR , DIRECT, 
  2178.         "d7;[1=];" },
  2179. /* STAB 371 */   { ADDR , EXTENDED, 
  2180.         "f7;[1=]x" },
  2181. /* STAB 372 */   { 0 , 0, 
  2182.         "e7;[1=];" },
  2183. /* STD 373 */   { ADDR , DIRECT, 
  2184.         "dd;[1=];" },
  2185. /* STD 374 */   { ADDR , EXTENDED, 
  2186.         "fd;[1=]x" },
  2187. /* STD 375 */   { 0 , 0, 
  2188.         "ed;[1=];" },
  2189. /* STS 376 */   { ADDR , DIRECT, 
  2190.         "9f;[1=];" },
  2191. /* STS 377 */   { ADDR , EXTENDED, 
  2192.         "bf;[1=]x" },
  2193. /* STS 378 */   { 0 , 0, 
  2194.         "af;[1=];" },
  2195. /* STX 379 */   { ADDR , DIRECT, 
  2196.         "df;[1=];" },
  2197. /* STX 380 */   { ADDR , EXTENDED, 
  2198.         "ff;[1=]x" },
  2199. /* STX 381 */   { 0 , 0, 
  2200.         "ef;[1=];" },
  2201. /* SUB 382 */   { ACCREG+ADDR , REGA+DIRECT, 
  2202.         "90;[1=];" },
  2203. /* SUB 383 */   { ACCREG+ADDR , REGA+EXTENDED, 
  2204.         "b0;[1=]x" },
  2205. /* SUB 384 */   { ACCREG+ADDR , REGB+DIRECT, 
  2206.         "d0;[1=];" },
  2207. /* SUB 385 */   { ACCREG+ADDR , REGB+EXTENDED, 
  2208.         "f0;[1=]x" },
  2209. /* SUB 386 */   { ACCREG , REGA, 
  2210.         "80;[1=];" },
  2211. /* SUB 387 */   { ACCREG , REGB, 
  2212.         "c0;[1=];" },
  2213. /* SUB 388 */   { ACCREG , REGA, 
  2214.         "a0;[1=];" },
  2215. /* SUB 389 */   { ACCREG , REGB, 
  2216.         "e0;[1=];" },
  2217. /* SUBA 390 */   { ADDR , DIRECT, 
  2218.         "90;[1=];" },
  2219. /* SUBA 391 */   { ADDR , EXTENDED, 
  2220.         "b0;[1=]x" },
  2221. /* SUBA 392 */   { 0 , 0, 
  2222.         "80;[1=];" },
  2223. /* SUBA 393 */   { 0 , 0, 
  2224.         "a0;[1=];" },
  2225. /* SUBB 394 */   { ADDR , DIRECT, 
  2226.         "d0;[1=];" },
  2227. /* SUBB 395 */   { ADDR , EXTENDED, 
  2228.         "f0;[1=]x" },
  2229. /* SUBB 396 */   { 0 , 0, 
  2230.         "c0;[1=];" },
  2231. /* SUBB 397 */   { 0 , 0, 
  2232.         "e0;[1=];" },
  2233. /* SUBD 398 */   { ADDR , DIRECT, 
  2234.         "93;[1=];" },
  2235. /* SUBD 399 */   { ADDR , EXTENDED, 
  2236.         "b3;[1=]x" },
  2237. /* SUBD 400 */   { 0 , 0, 
  2238.         "83;[1=]x" },
  2239. /* SUBD 401 */   { 0 , 0, 
  2240.         "a3;[1=];" },
  2241. /* SWI 402 */   { 0 , 0, 
  2242.         "3f;" },
  2243. /* TAB 403 */   { 0 , 0, 
  2244.         "16;" },
  2245. /* TAP 404 */   { 0 , 0, 
  2246.         "06;" },
  2247. /* TBA 405 */   { 0 , 0, 
  2248.         "17;" },
  2249. /* TIM 406 */   { 0 , 0, 
  2250.         "7b;[1=];[2=];" },
  2251. /* TIM 407 */   { 0 , 0, 
  2252.         "6b;[1=];[2=];" },
  2253. /* TPA 408 */   { 0 , 0, 
  2254.         "07;" },
  2255. /* TST 409 */   { ACCREG , REGA, 
  2256.         "4d;" },
  2257. /* TST 410 */   { ACCREG , REGB, 
  2258.         "5d;" },
  2259. /* TST 411 */   { 0 , 0, 
  2260.         "7d;[1=]x" },
  2261. /* TST 412 */   { 0 , 0, 
  2262.         "6d;[1=];" },
  2263. /* TSTA 413 */   { 0 , 0, 
  2264.         "4d;" },
  2265. /* TSTB 414 */   { 0 , 0, 
  2266.         "5d;" },
  2267. /* TSX 415 */   { 0 , 0, 
  2268.         "30;" },
  2269. /* TXS 416 */   { 0 , 0, 
  2270.         "35;" },
  2271. /* WAI 417 */   { 0 , 0, 
  2272.         "3e;" },
  2273. /* XGDX 418 */   { 0 , 0, 
  2274.         "18;" },
  2275.     { 0,0,""} };
  2276. /* end fraptabdef.c */
  2277.